svf-tools 1.0.758 → 1.0.760
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +7 -0
- package/SVF-doxygen/html/html/AccessPath_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFBasicBlockG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +11 -8
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +2 -1
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +0 -196
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +121 -786
- package/SVF-doxygen/html/html/ExtAPI_8h.html +2 -67
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +69 -654
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp.html +3 -4
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1408 -1289
- package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -0
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +418 -400
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +744 -616
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +9 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +485 -472
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBugReport_8cpp_source.html +362 -365
- package/SVF-doxygen/html/html/SVFBugReport_8h_source.html +24 -24
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +2087 -2084
- package/SVF-doxygen/html/html/SVFFileSystem_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +60 -60
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +454 -527
- package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +211 -233
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp.html +2 -0
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +286 -682
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFModule_8h.html +0 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +258 -260
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/SVFUtil_8h.html +4 -9
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +392 -405
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +1038 -1030
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +28 -28
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +1 -4
- package/SVF-doxygen/html/html/cJSON_8cpp.html +2 -1
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +2 -2
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/classOption.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BufferOverflowBug.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +95 -95
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeBug.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +8 -77
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +130 -1337
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FileNeverCloseBug.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1FilePartialCloseBug.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FullNullPtrDereferenceBug.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GenericBug.html +9 -13
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraphReader.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +11 -8
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGWriter.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +42 -40
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1583 -1452
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1NeverFreeBug.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PartialLeakBug.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1PartialNullPtrDereferenceBug.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ReaderIDToObjMap.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ReaderPtrPool.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +73 -73
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFBugEvent.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1SVFBugReport.html +87 -87
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +67 -67
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +15 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +222 -153
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +64 -73
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +905 -1767
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1126 -1124
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRWriter.html +547 -546
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +173 -173
- package/SVF-doxygen/html/html/classSVF_1_1SVFModuleReader.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFModuleWriter.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfoReader.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
- package/SVF-doxygen/html/html/classes.html +335 -338
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_3bbf4ce25bc1411b817b5643b794c8fb.html +2 -0
- package/SVF-doxygen/html/html/extapi_8c.html +1950 -0
- package/SVF-doxygen/html/html/extapi_8c_source.html +1488 -0
- package/SVF-doxygen/html/html/files.html +29 -28
- package/SVF-doxygen/html/html/functions_a.html +17 -27
- package/SVF-doxygen/html/html/functions_b.html +9 -12
- package/SVF-doxygen/html/html/functions_c.html +26 -70
- package/SVF-doxygen/html/html/functions_d.html +3 -7
- package/SVF-doxygen/html/html/functions_e.html +4 -121
- package/SVF-doxygen/html/html/functions_enum.html +0 -6
- package/SVF-doxygen/html/html/functions_eval.html +0 -1
- package/SVF-doxygen/html/html/functions_eval_c.html +1 -15
- package/SVF-doxygen/html/html/functions_eval_e.html +0 -96
- package/SVF-doxygen/html/html/functions_eval_g.html +1 -2
- package/SVF-doxygen/html/html/functions_eval_l.html +0 -1
- package/SVF-doxygen/html/html/functions_eval_m.html +0 -6
- package/SVF-doxygen/html/html/functions_eval_o.html +0 -3
- package/SVF-doxygen/html/html/functions_eval_r.html +0 -6
- package/SVF-doxygen/html/html/functions_eval_s.html +0 -1
- package/SVF-doxygen/html/html/functions_f.html +16 -19
- package/SVF-doxygen/html/html/functions_func.html +6 -18
- package/SVF-doxygen/html/html/functions_func_e.html +1 -13
- package/SVF-doxygen/html/html/functions_func_g.html +24 -91
- package/SVF-doxygen/html/html/functions_func_h.html +9 -12
- package/SVF-doxygen/html/html/functions_func_i.html +16 -28
- package/SVF-doxygen/html/html/functions_func_n.html +0 -3
- package/SVF-doxygen/html/html/functions_func_p.html +3 -12
- package/SVF-doxygen/html/html/functions_func_s.html +20 -83
- package/SVF-doxygen/html/html/functions_g.html +32 -100
- package/SVF-doxygen/html/html/functions_h.html +6 -9
- package/SVF-doxygen/html/html/functions_i.html +16 -28
- package/SVF-doxygen/html/html/functions_l.html +0 -1
- package/SVF-doxygen/html/html/functions_m.html +1 -7
- package/SVF-doxygen/html/html/functions_n.html +4 -7
- package/SVF-doxygen/html/html/functions_o.html +31 -44
- package/SVF-doxygen/html/html/functions_p.html +18 -29
- package/SVF-doxygen/html/html/functions_r.html +9 -16
- package/SVF-doxygen/html/html/functions_s.html +16 -84
- package/SVF-doxygen/html/html/functions_t.html +4 -10
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_b.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_c.html +1 -23
- package/SVF-doxygen/html/html/functions_vars_d.html +1 -5
- package/SVF-doxygen/html/html/functions_vars_e.html +2 -8
- package/SVF-doxygen/html/html/functions_vars_f.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_o.html +0 -9
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -2
- package/SVF-doxygen/html/html/functions_vars_s.html +1 -5
- package/SVF-doxygen/html/html/functions_vars_t.html +0 -6
- package/SVF-doxygen/html/html/globals.html +22 -4
- package/SVF-doxygen/html/html/globals_a.html +3 -0
- package/SVF-doxygen/html/html/globals_b.html +3 -0
- package/SVF-doxygen/html/html/globals_defs.html +3 -9
- package/SVF-doxygen/html/html/globals_e.html +0 -3
- package/SVF-doxygen/html/html/globals_f.html +11 -2
- package/SVF-doxygen/html/html/globals_func.html +159 -15
- package/SVF-doxygen/html/html/globals_g.html +13 -4
- package/SVF-doxygen/html/html/globals_i.html +41 -2
- package/SVF-doxygen/html/html/globals_j.html +3 -6
- package/SVF-doxygen/html/html/globals_l.html +3 -0
- package/SVF-doxygen/html/html/globals_m.html +8 -2
- package/SVF-doxygen/html/html/globals_n.html +2 -1
- package/SVF-doxygen/html/html/globals_p.html +1 -4
- package/SVF-doxygen/html/html/globals_r.html +12 -6
- package/SVF-doxygen/html/html/globals_s.html +33 -0
- package/SVF-doxygen/html/html/globals_t.html +3 -0
- package/SVF-doxygen/html/html/hierarchy.html +526 -529
- package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
- package/SVF-doxygen/html/html/llvm2svf_8cpp.html +1 -1
- package/SVF-doxygen/html/html/llvm2svf_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +3 -0
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +152 -151
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1003 -776
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +298 -368
- package/SVF-doxygen/html/html/namespacemembers_func_g.html +11 -5
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +11 -14
- package/SVF-doxygen/html/html/namespacemembers_func_r.html +6 -0
- package/SVF-doxygen/html/html/namespacemembers_g.html +11 -5
- package/SVF-doxygen/html/html/namespacemembers_i.html +8 -11
- package/SVF-doxygen/html/html/namespacemembers_r.html +6 -0
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_0.js +153 -147
- package/SVF-doxygen/html/html/search/all_1.js +476 -478
- package/SVF-doxygen/html/html/search/all_10.js +323 -327
- package/SVF-doxygen/html/html/search/all_11.js +212 -209
- package/SVF-doxygen/html/html/search/all_12.js +536 -547
- package/SVF-doxygen/html/html/search/all_13.js +188 -189
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +10 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +159 -159
- package/SVF-doxygen/html/html/search/all_3.js +597 -608
- package/SVF-doxygen/html/html/search/all_4.js +226 -227
- package/SVF-doxygen/html/html/search/all_5.js +116 -156
- package/SVF-doxygen/html/html/search/all_6.js +225 -223
- package/SVF-doxygen/html/html/search/all_7.js +996 -1012
- package/SVF-doxygen/html/html/search/all_8.js +191 -192
- package/SVF-doxygen/html/html/search/all_9.js +605 -597
- package/SVF-doxygen/html/html/search/all_a.js +46 -47
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +114 -113
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +205 -206
- package/SVF-doxygen/html/html/search/all_f.js +116 -122
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -10
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -19
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +2 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -13
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -2
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +6 -6
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -4
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -2
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -40
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -34
- package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -17
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -6
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -11
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -4
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +6 -351
- package/SVF-doxygen/html/html/search/functions_1.js +348 -81
- package/SVF-doxygen/html/html/search/functions_10.js +139 -122
- package/SVF-doxygen/html/html/search/functions_11.js +126 -283
- package/SVF-doxygen/html/html/search/functions_12.js +273 -55
- package/SVF-doxygen/html/html/search/functions_13.js +56 -38
- package/SVF-doxygen/html/html/search/functions_14.js +38 -71
- package/SVF-doxygen/html/html/search/functions_15.js +71 -29
- package/SVF-doxygen/html/html/search/functions_16.js +29 -2
- package/SVF-doxygen/html/html/search/functions_17.js +2 -169
- package/SVF-doxygen/html/html/search/functions_18.html +30 -0
- package/SVF-doxygen/html/html/search/functions_18.js +172 -0
- package/SVF-doxygen/html/html/search/functions_2.js +82 -251
- package/SVF-doxygen/html/html/search/functions_3.js +251 -71
- package/SVF-doxygen/html/html/search/functions_4.js +71 -55
- package/SVF-doxygen/html/html/search/functions_5.js +51 -55
- package/SVF-doxygen/html/html/search/functions_6.js +58 -832
- package/SVF-doxygen/html/html/search/functions_7.js +816 -144
- package/SVF-doxygen/html/html/search/functions_8.js +143 -417
- package/SVF-doxygen/html/html/search/functions_9.js +425 -29
- package/SVF-doxygen/html/html/search/functions_a.js +30 -2
- package/SVF-doxygen/html/html/search/functions_b.js +2 -23
- package/SVF-doxygen/html/html/search/functions_c.js +24 -75
- package/SVF-doxygen/html/html/search/functions_d.js +77 -35
- package/SVF-doxygen/html/html/search/functions_e.js +34 -56
- package/SVF-doxygen/html/html/search/functions_f.js +56 -143
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -74
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -93
- package/SVF-doxygen/html/html/search/variables_13.js +75 -77
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -35
- package/SVF-doxygen/html/html/search/variables_3.js +141 -148
- package/SVF-doxygen/html/html/search/variables_4.js +55 -56
- package/SVF-doxygen/html/html/search/variables_5.js +38 -40
- package/SVF-doxygen/html/html/search/variables_6.js +66 -67
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -33
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +7 -7
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +9 -9
- package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +9 -9
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/build.sh +1 -1
- package/package.json +1 -1
- package/svf/include/SVFIR/SVFModule.h +0 -1
- package/svf/include/SVFIR/SVFValue.h +7 -1
- package/svf/include/Util/ExtAPI.h +11 -457
- package/svf/include/Util/SVFUtil.h +7 -22
- package/svf/lib/SVFIR/SVFFileSystem.cpp +3 -1
- package/svf/lib/SVFIR/SVFValue.cpp +2 -2
- package/svf/lib/Util/ExtAPI.cpp +36 -595
- package/svf/lib/Util/Options.cpp +1 -1
- package/svf/lib/Util/SVFBugReport.cpp +0 -2
- package/svf-llvm/include/SVF-LLVM/LLVMModule.h +17 -0
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +14 -1
- package/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +5 -14
- package/svf-llvm/lib/LLVMModule.cpp +157 -43
- package/svf-llvm/lib/LLVMUtil.cpp +121 -0
- package/svf-llvm/lib/SVFIRBuilder.cpp +7 -76
- package/svf-llvm/lib/SVFIRExtAPI.cpp +161 -536
- package/svf-llvm/lib/extapi.c +1348 -0
- package/svf/include/Util/ExtAPI.json +0 -5853
|
@@ -507,7 +507,7 @@ $(function() {
|
|
|
507
507
|
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div>
|
|
508
508
|
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">else</span></div>
|
|
509
509
|
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  {</div>
|
|
510
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">return</span> getGepValVar(
|
|
510
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">return</span> getGepValVar(gvar, <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>(<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>), tpy);</div>
|
|
511
511
|
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div>
|
|
512
512
|
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> }</div>
|
|
513
513
|
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
|
|
@@ -851,521 +851,453 @@ $(function() {
|
|
|
851
851
|
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(callee);</div>
|
|
852
852
|
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div>
|
|
853
853
|
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  {</div>
|
|
854
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> 
|
|
855
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> 
|
|
856
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> 
|
|
857
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> 
|
|
858
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> 
|
|
859
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> 
|
|
860
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> 
|
|
861
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> 
|
|
862
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> 
|
|
863
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> 
|
|
864
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> 
|
|
865
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> 
|
|
866
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> 
|
|
867
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> 
|
|
868
|
-
<div class="line"><a name="
|
|
869
|
-
<div class="line"><a name="
|
|
870
|
-
<div class="line"><a name="l00869"></a><span class="lineno"
|
|
871
|
-
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> 
|
|
872
|
-
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> 
|
|
873
|
-
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> 
|
|
874
|
-
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> 
|
|
854
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  handleExtCall(cs, svfcallee);</div>
|
|
855
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  }</div>
|
|
856
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">else</span></div>
|
|
857
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div>
|
|
858
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  handleDirectCall(cs, callee);</div>
|
|
859
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  }</div>
|
|
860
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div>
|
|
861
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">else</span></div>
|
|
862
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  {</div>
|
|
863
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="comment">//If the callee was not identified as a function (null F), this is indirect.</span></div>
|
|
864
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  handleIndCall(cs);</div>
|
|
865
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  }</div>
|
|
866
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> }</div>
|
|
867
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  </div>
|
|
868
|
+
<div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aca31431b70e2fb360caa1140e29c0c9d"> 867</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitReturnInst(<a class="code" href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">ReturnInst</a> &inst)</div>
|
|
869
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> {</div>
|
|
870
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  </div>
|
|
871
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="comment">// ReturnInst itself should always not be a pointer type</span></div>
|
|
872
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  assert(!SVFUtil::isa<PointerType>(inst.getType()));</div>
|
|
873
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  </div>
|
|
874
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"process return "</span> << LLVMModuleSet::getLLVMModuleSet()->getSVFValue(&inst)->toString() << <span class="stringliteral">" \n"</span>);</div>
|
|
875
875
|
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  </div>
|
|
876
|
-
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <
|
|
877
|
-
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> 
|
|
878
|
-
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> 
|
|
879
|
-
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> 
|
|
880
|
-
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <
|
|
881
|
-
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  </div>
|
|
882
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <
|
|
883
|
-
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="
|
|
884
|
-
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="
|
|
885
|
-
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> 
|
|
886
|
-
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> 
|
|
887
|
-
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> 
|
|
888
|
-
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> 
|
|
889
|
-
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> 
|
|
890
|
-
<div class="line"><a name="
|
|
891
|
-
<div class="line"><a name="
|
|
892
|
-
<div class="line"><a name="l00899"></a><span class="lineno"
|
|
893
|
-
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> 
|
|
894
|
-
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> 
|
|
895
|
-
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> 
|
|
896
|
-
<div class="line"><a name="
|
|
897
|
-
<div class="line"><a name="
|
|
898
|
-
<div class="line"><a name="l00913"></a><span class="lineno"
|
|
899
|
-
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> 
|
|
900
|
-
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> 
|
|
901
|
-
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> 
|
|
902
|
-
<div class="line"><a name="
|
|
903
|
-
<div class="line"><a name="
|
|
904
|
-
<div class="line"><a name="l00923"></a><span class="lineno"
|
|
905
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> 
|
|
906
|
-
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <
|
|
907
|
-
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> 
|
|
908
|
-
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">
|
|
909
|
-
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  cond =
|
|
910
|
-
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> 
|
|
911
|
-
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> 
|
|
876
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src = inst.getReturnValue())</div>
|
|
877
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div>
|
|
878
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(inst.getParent()->getParent());</div>
|
|
879
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  </div>
|
|
880
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rnF = getReturnNode(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
881
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnS = getValueNode(src);</div>
|
|
882
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(&inst);</div>
|
|
883
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = pag->getICFG()->getICFGNode(svfInst);</div>
|
|
884
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="comment">//vnS may be null if src is a null ptr</span></div>
|
|
885
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  addPhiStmt(rnF,vnS,icfgNode);</div>
|
|
886
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div>
|
|
887
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> }</div>
|
|
888
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  </div>
|
|
889
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  </div>
|
|
890
|
+
<div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7a17ca95a5435b498fc875eb9a290800"> 897</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitExtractValueInst(<a class="code" href="namespaceSVF.html#ace1fd4c32134018e2f6d5da193524986">ExtractValueInst</a> &inst)</div>
|
|
891
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> {</div>
|
|
892
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = getValueNode(&inst);</div>
|
|
893
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  addBlackHoleAddrEdge(dst);</div>
|
|
894
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> }</div>
|
|
895
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  </div>
|
|
896
|
+
<div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ac6b24fcbd1e1b31141c27167d49a56ec"> 911</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitExtractElementInst(<a class="code" href="namespaceSVF.html#afb88c4d723dd7c51bdfc7ba5893cb356">ExtractElementInst</a> &inst)</div>
|
|
897
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> {</div>
|
|
898
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = getValueNode(&inst);</div>
|
|
899
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  addBlackHoleAddrEdge(dst);</div>
|
|
900
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> }</div>
|
|
901
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  </div>
|
|
902
|
+
<div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4ad832691784cf4cb93017792ea3d9af"> 921</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitBranchInst(<a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> &inst)</div>
|
|
903
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> {</div>
|
|
904
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> brinst = getValueNode(&inst);</div>
|
|
905
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond;</div>
|
|
906
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">if</span> (inst.isConditional())</div>
|
|
907
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  cond = getValueNode(inst.getCondition());</div>
|
|
908
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">else</span></div>
|
|
909
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  cond = pag->getNullPtr();</div>
|
|
910
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  </div>
|
|
911
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  assert(inst.getNumSuccessors() <= 2 && <span class="stringliteral">"if/else has more than two branches?"</span>);</div>
|
|
912
912
|
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  </div>
|
|
913
|
-
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> 
|
|
914
|
-
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  </div>
|
|
915
|
-
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> 
|
|
916
|
-
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> 
|
|
917
|
-
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> 
|
|
918
|
-
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keyword">const</span> <a class="code" href="
|
|
919
|
-
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> 
|
|
920
|
-
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> 
|
|
921
|
-
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> 
|
|
922
|
-
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> 
|
|
923
|
-
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> 
|
|
924
|
-
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> 
|
|
925
|
-
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> 
|
|
926
|
-
<div class="line"><a name="l00945"></a><span class="lineno"
|
|
927
|
-
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> 
|
|
928
|
-
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> 
|
|
929
|
-
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="
|
|
930
|
-
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  </div>
|
|
931
|
-
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> 
|
|
932
|
-
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> 
|
|
933
|
-
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> 
|
|
934
|
-
<div class="line"><a name="
|
|
935
|
-
<div class="line"><a name="
|
|
936
|
-
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> 
|
|
937
|
-
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="
|
|
938
|
-
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> 
|
|
939
|
-
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> 
|
|
940
|
-
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> 
|
|
941
|
-
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> 
|
|
942
|
-
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> 
|
|
943
|
-
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> 
|
|
944
|
-
<div class="line"><a name="
|
|
945
|
-
<div class="line"><a name="
|
|
946
|
-
<div class="line"><a name="l00971"></a><span class="lineno"
|
|
947
|
-
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> 
|
|
948
|
-
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>
|
|
949
|
-
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> 
|
|
950
|
-
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> 
|
|
951
|
-
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> 
|
|
952
|
-
<div class="line"><a name="
|
|
953
|
-
<div class="line"><a name="
|
|
954
|
-
<div class="line"><a name="l00983"></a><span class="lineno"
|
|
955
|
-
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> 
|
|
956
|
-
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> 
|
|
957
|
-
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> 
|
|
958
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> 
|
|
959
|
-
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> 
|
|
960
|
-
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> 
|
|
961
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> 
|
|
962
|
-
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> 
|
|
963
|
-
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> 
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="l00998"></a><span class="lineno"
|
|
967
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> 
|
|
968
|
-
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  </div>
|
|
969
|
-
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> 
|
|
970
|
-
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <
|
|
971
|
-
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> 
|
|
972
|
-
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> 
|
|
973
|
-
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> 
|
|
974
|
-
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  </div>
|
|
975
|
-
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="comment">//
|
|
976
|
-
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <
|
|
977
|
-
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> 
|
|
978
|
-
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> 
|
|
979
|
-
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> 
|
|
980
|
-
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <a class="code" href="
|
|
981
|
-
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> 
|
|
982
|
-
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> 
|
|
983
|
-
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> 
|
|
984
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> 
|
|
985
|
-
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <
|
|
986
|
-
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <
|
|
987
|
-
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> 
|
|
988
|
-
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="
|
|
989
|
-
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> 
|
|
990
|
-
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> 
|
|
991
|
-
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> 
|
|
992
|
-
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> 
|
|
993
|
-
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> 
|
|
994
|
-
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> 
|
|
995
|
-
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> 
|
|
996
|
-
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> 
|
|
997
|
-
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> 
|
|
998
|
-
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <
|
|
913
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a> successors;</div>
|
|
914
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < inst.getNumSuccessors(); ++i)</div>
|
|
915
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  {</div>
|
|
916
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* succInst = &inst.getSuccessor(i)->front();</div>
|
|
917
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfSuccInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(succInst);</div>
|
|
918
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = pag->getICFG()->getICFGNode(svfSuccInst);</div>
|
|
919
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  successors.push_back(std::make_pair(icfgNode, 1-i));</div>
|
|
920
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  }</div>
|
|
921
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  addBranchStmt(brinst, cond,successors);</div>
|
|
922
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> }</div>
|
|
923
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  </div>
|
|
924
|
+
<div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a83bc9c1dbc95156a68f139ff16faca2a"> 943</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitSwitchInst(<a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &inst)</div>
|
|
925
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> {</div>
|
|
926
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> brinst = getValueNode(&inst);</div>
|
|
927
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond = getValueNode(inst.getCondition());</div>
|
|
928
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  </div>
|
|
929
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a> successors;</div>
|
|
930
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < inst.getNumSuccessors(); ++i)</div>
|
|
931
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div>
|
|
932
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* succInst = &inst.getSuccessor(i)->front();</div>
|
|
933
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* condVal = inst.findCaseDest(inst.getSuccessor(i));</div>
|
|
934
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> val = -1;</div>
|
|
935
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">if</span> (condVal && condVal->getBitWidth() <= 64)</div>
|
|
936
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  val = condVal->getSExtValue();</div>
|
|
937
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfSuccInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(succInst);</div>
|
|
938
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = pag->getICFG()->getICFGNode(svfSuccInst);</div>
|
|
939
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  successors.push_back(std::make_pair(icfgNode,val));</div>
|
|
940
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
941
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  addBranchStmt(brinst, cond,successors);</div>
|
|
942
|
+
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> }</div>
|
|
943
|
+
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  </div>
|
|
944
|
+
<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ac26e0714728df0beca278eb405596775"> 969</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitVAArgInst(<a class="code" href="namespaceSVF.html#abcafc32093ff5ee038b5fcf6e4076ed4">VAArgInst</a> &inst)</div>
|
|
945
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> {</div>
|
|
946
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = getValueNode(&inst);</div>
|
|
947
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* opnd = inst.getPointerOperand();</div>
|
|
948
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = getValueNode(opnd);</div>
|
|
949
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  addCopyEdge(src,dst);</div>
|
|
950
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> }</div>
|
|
951
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  </div>
|
|
952
|
+
<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a870ea33a335a7036555dd24171cf8f22"> 981</a></span> <span class="keywordtype">void</span> SVFIRBuilder::visitFreezeInst(<a class="code" href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">FreezeInst</a> &inst)</div>
|
|
953
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> {</div>
|
|
954
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = getValueNode(&inst);</div>
|
|
955
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < inst.getNumOperands(); i++)</div>
|
|
956
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  {</div>
|
|
957
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* opnd = inst.getOperand(i);</div>
|
|
958
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = getValueNode(opnd);</div>
|
|
959
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  addCopyEdge(src,dst);</div>
|
|
960
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div>
|
|
961
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> }</div>
|
|
962
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  </div>
|
|
963
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  </div>
|
|
964
|
+
<div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3ccc53ca9a6862674ee2ec3bd67aa515"> 996</a></span> <span class="keywordtype">void</span> SVFIRBuilder::handleDirectCall(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
965
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> {</div>
|
|
966
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  </div>
|
|
967
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
968
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfcall = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);</div>
|
|
969
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
970
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>,</div>
|
|
971
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"handle direct call "</span> << svfcall-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">" callee "</span> << <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName().str() << <span class="stringliteral">"\n"</span>);</div>
|
|
972
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  </div>
|
|
973
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="comment">//Only handle the ret.val. if it's used as a ptr.</span></div>
|
|
974
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstrec = getValueNode(cs);</div>
|
|
975
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="comment">//Does it actually return a ptr?</span></div>
|
|
976
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keywordflow">if</span> (!cs->getType()->isVoidTy())</div>
|
|
977
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  {</div>
|
|
978
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcret = getReturnNode(svffun);</div>
|
|
979
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callICFGNode = pag->getICFG()->getCallICFGNode(svfcall);</div>
|
|
980
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exitICFGNode = pag->getICFG()->getFunExitICFGNode(svffun);</div>
|
|
981
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  addRetEdge(srcret, dstrec,callICFGNode, exitICFGNode);</div>
|
|
982
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  }</div>
|
|
983
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="comment">//Iterators for the actual and formal parameters</span></div>
|
|
984
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> itA = 0, ieA = cs->arg_size();</div>
|
|
985
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  Function::const_arg_iterator itF = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->arg_begin(), ieF = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->arg_end();</div>
|
|
986
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="comment">//Go through the fixed parameters.</span></div>
|
|
987
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" args:"</span>);</div>
|
|
988
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">for</span> (; itF != ieF; ++itA, ++itF)</div>
|
|
989
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  {</div>
|
|
990
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="comment">//Some programs (e.g. Linux kernel) leave unneeded parameters empty.</span></div>
|
|
991
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">if</span> (itA == ieA)</div>
|
|
992
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  {</div>
|
|
993
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" !! not enough args\n"</span>);</div>
|
|
994
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">break</span>;</div>
|
|
995
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div>
|
|
996
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* AA = cs->getArgOperand(itA), *FA = &*itF; <span class="comment">//current actual/formal arg</span></div>
|
|
997
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  </div>
|
|
998
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"process actual parm "</span> << LLVMModuleSet::getLLVMModuleSet()->getSVFValue(AA)->toString() << <span class="stringliteral">" \n"</span>);</div>
|
|
999
999
|
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  </div>
|
|
1000
|
-
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <a class="code" href="
|
|
1001
|
-
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  </div>
|
|
1002
|
-
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <a class="code" href="
|
|
1003
|
-
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <a class="code" href="
|
|
1004
|
-
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> 
|
|
1005
|
-
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> 
|
|
1006
|
-
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> 
|
|
1007
|
-
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> 
|
|
1008
|
-
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> 
|
|
1009
|
-
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> 
|
|
1010
|
-
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> 
|
|
1011
|
-
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <
|
|
1012
|
-
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> 
|
|
1013
|
-
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> 
|
|
1014
|
-
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> 
|
|
1015
|
-
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <
|
|
1016
|
-
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="code" href="
|
|
1017
|
-
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> 
|
|
1018
|
-
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> 
|
|
1019
|
-
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> 
|
|
1020
|
-
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> 
|
|
1021
|
-
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> 
|
|
1022
|
-
<div class="line"><a name="
|
|
1023
|
-
<div class="line"><a name="
|
|
1024
|
-
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> 
|
|
1025
|
-
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> 
|
|
1026
|
-
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> 
|
|
1027
|
-
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> 
|
|
1028
|
-
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> 
|
|
1029
|
-
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> 
|
|
1030
|
-
<div class="line"><a name="l01064"></a><span class="lineno"
|
|
1031
|
-
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> 
|
|
1032
|
-
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#
|
|
1033
|
-
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> 
|
|
1034
|
-
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> 
|
|
1035
|
-
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> 
|
|
1036
|
-
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> 
|
|
1037
|
-
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> 
|
|
1038
|
-
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> 
|
|
1039
|
-
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> 
|
|
1040
|
-
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> 
|
|
1041
|
-
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> 
|
|
1042
|
-
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> 
|
|
1043
|
-
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> 
|
|
1044
|
-
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> 
|
|
1045
|
-
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  </div>
|
|
1046
|
-
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="comment"
|
|
1047
|
-
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="comment">//
|
|
1048
|
-
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="comment"
|
|
1049
|
-
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="comment">//
|
|
1050
|
-
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="comment">// %
|
|
1051
|
-
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="comment">//
|
|
1052
|
-
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="comment"
|
|
1053
|
-
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <span class="comment">//
|
|
1054
|
-
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="comment"
|
|
1055
|
-
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="comment">//
|
|
1056
|
-
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <span class="comment">// %
|
|
1057
|
-
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="comment">//
|
|
1058
|
-
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <
|
|
1059
|
-
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <span class="
|
|
1060
|
-
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> 
|
|
1061
|
-
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> 
|
|
1062
|
-
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> 
|
|
1063
|
-
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> 
|
|
1064
|
-
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> 
|
|
1065
|
-
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> 
|
|
1066
|
-
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> 
|
|
1067
|
-
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> 
|
|
1068
|
-
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> 
|
|
1069
|
-
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> 
|
|
1070
|
-
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> 
|
|
1071
|
-
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> 
|
|
1072
|
-
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> 
|
|
1073
|
-
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> 
|
|
1074
|
-
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> 
|
|
1075
|
-
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> 
|
|
1076
|
-
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> 
|
|
1077
|
-
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> 
|
|
1078
|
-
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> 
|
|
1079
|
-
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> 
|
|
1080
|
-
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> 
|
|
1081
|
-
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> 
|
|
1082
|
-
<div class="line"><a name="
|
|
1083
|
-
<div class="line"><a name="
|
|
1084
|
-
<div class="line"><a name="
|
|
1085
|
-
<div class="line"><a name="
|
|
1086
|
-
<div class="line"><a name="
|
|
1087
|
-
<div class="line"><a name="
|
|
1088
|
-
<div class="line"><a name="
|
|
1089
|
-
<div class="line"><a name="
|
|
1090
|
-
<div class="line"><a name="
|
|
1091
|
-
<div class="line"><a name="
|
|
1092
|
-
<div class="line"><a name="
|
|
1093
|
-
<div class="line"><a name="
|
|
1094
|
-
<div class="line"><a name="
|
|
1095
|
-
<div class="line"><a name="
|
|
1096
|
-
<div class="line"><a name="
|
|
1097
|
-
<div class="line"><a name="
|
|
1098
|
-
<div class="line"><a name="
|
|
1099
|
-
<div class="line"><a name="
|
|
1100
|
-
<div class="line"><a name="
|
|
1101
|
-
<div class="line"><a name="
|
|
1102
|
-
<div class="line"><a name="
|
|
1103
|
-
<div class="line"><a name="
|
|
1104
|
-
<div class="line"><a name="
|
|
1105
|
-
<div class="line"><a name="
|
|
1106
|
-
<div class="line"><a name="
|
|
1107
|
-
<div class="line"><a name="
|
|
1108
|
-
<div class="line"><a name="
|
|
1109
|
-
<div class="line"><a name="
|
|
1110
|
-
<div class="line"><a name="
|
|
1111
|
-
<div class="line"><a name="
|
|
1112
|
-
<div class="line"><a name="
|
|
1113
|
-
<div class="line"><a name="
|
|
1114
|
-
<div class="line"><a name="
|
|
1115
|
-
<div class="line"><a name="
|
|
1116
|
-
<div class="line"><a name="
|
|
1117
|
-
<div class="line"><a name="
|
|
1118
|
-
<div class="line"><a name="
|
|
1119
|
-
<div class="line"><a name="
|
|
1120
|
-
<div class="line"><a name="
|
|
1121
|
-
<div class="line"><a name="
|
|
1122
|
-
<div class="line"><a name="
|
|
1123
|
-
<div class="line"><a name="
|
|
1124
|
-
<div class="line"><a name="
|
|
1125
|
-
<div class="line"><a name="
|
|
1126
|
-
<div class="line"><a name="
|
|
1127
|
-
<div class="line"><a name="
|
|
1128
|
-
<div class="line"><a name="
|
|
1129
|
-
<div class="line"><a name="
|
|
1130
|
-
<div class="line"><a name="
|
|
1131
|
-
<div class="line"><a name="
|
|
1132
|
-
<div class="line"><a name="
|
|
1133
|
-
<div class="line"><a name="
|
|
1134
|
-
<div class="line"><a name="
|
|
1135
|
-
<div class="line"><a name="
|
|
1136
|
-
<div class="line"><a name="
|
|
1137
|
-
<div class="line"><a name="
|
|
1138
|
-
<div class="line"><a name="
|
|
1139
|
-
<div class="line"><a name="
|
|
1140
|
-
<div class="line"><a name="
|
|
1141
|
-
<div class="line"><a name="
|
|
1142
|
-
<div class="line"><a name="
|
|
1143
|
-
<div class="line"><a name="
|
|
1000
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstFA = getValueNode(FA);</div>
|
|
1001
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcAA = getValueNode(AA);</div>
|
|
1002
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* icfgNode = pag->getICFG()->getCallICFGNode(svfcall);</div>
|
|
1003
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry = pag->getICFG()->getFunEntryICFGNode(svffun);</div>
|
|
1004
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  addCallEdge(srcAA, dstFA, icfgNode, entry);</div>
|
|
1005
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div>
|
|
1006
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <span class="comment">//Any remaining actual args must be varargs.</span></div>
|
|
1007
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isVarArg())</div>
|
|
1008
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  {</div>
|
|
1009
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vaF = getVarargNode(svffun);</div>
|
|
1010
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n varargs:"</span>);</div>
|
|
1011
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">for</span> (; itA != ieA; ++itA)</div>
|
|
1012
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  {</div>
|
|
1013
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* AA = cs->getArgOperand(itA);</div>
|
|
1014
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnAA = getValueNode(AA);</div>
|
|
1015
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* icfgNode = pag->getICFG()->getCallICFGNode(svfcall);</div>
|
|
1016
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry = pag->getICFG()->getFunEntryICFGNode(svffun);</div>
|
|
1017
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  addCallEdge(vnAA,vaF, icfgNode,entry);</div>
|
|
1018
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  }</div>
|
|
1019
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  }</div>
|
|
1020
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span>(itA != ieA)</div>
|
|
1021
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  {</div>
|
|
1022
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(<span class="stringliteral">"too many args to non-vararg func."</span>);</div>
|
|
1023
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(<span class="stringliteral">"("</span> + svfcall-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() + <span class="stringliteral">")"</span>);</div>
|
|
1024
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  </div>
|
|
1025
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  }</div>
|
|
1026
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> }</div>
|
|
1027
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  </div>
|
|
1028
|
+
<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a892ab8cad098e9e9d8425e7f05e35c59"> 1062</a></span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* SVFIRBuilder::getBaseValueForExtArg(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div>
|
|
1029
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> {</div>
|
|
1030
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">stripAllCasts</a>(V);</div>
|
|
1031
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  assert(value && <span class="stringliteral">"null ptr?"</span>);</div>
|
|
1032
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gep = SVFUtil::dyn_cast<GetElementPtrInst>(value))</div>
|
|
1033
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  {</div>
|
|
1034
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalidx = 0;</div>
|
|
1035
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1generic__bridge__gep__type__iterator.html">bridge_gep_iterator</a> gi = <a class="code" href="namespacellvm.html#acfe99e9d441434240c79f6d76b73fe0a">bridge_gep_begin</a>(gep), ge = <a class="code" href="namespacellvm.html#a7cfc92a12082d69711c97bb3d1b99c48">bridge_gep_end</a>(gep); gi != ge; ++gi)</div>
|
|
1036
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  {</div>
|
|
1037
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* op = SVFUtil::dyn_cast<ConstantInt>(gi.getOperand()))</div>
|
|
1038
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  totalidx += op->getSExtValue();</div>
|
|
1039
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  }</div>
|
|
1040
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keywordflow">if</span>(totalidx == 0 && !SVFUtil::isa<StructType>(value->getType()))</div>
|
|
1041
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  value = gep->getPointerOperand();</div>
|
|
1042
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  }</div>
|
|
1043
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  </div>
|
|
1044
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="comment">// if the argument of memcpy is the result of an allocation (1) or a casted load instruction (2),</span></div>
|
|
1045
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="comment">// further steps are necessary to find the correct base value</span></div>
|
|
1046
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="comment">//</span></div>
|
|
1047
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="comment">// (1)</span></div>
|
|
1048
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="comment">// %call = malloc 80</span></div>
|
|
1049
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="comment">// %0 = bitcast i8* %call to %struct.A*</span></div>
|
|
1050
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <span class="comment">// %1 = bitcast %struct.B* %param to i8*</span></div>
|
|
1051
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="comment">// call void memcpy(%call, %1, 80)</span></div>
|
|
1052
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="comment">//</span></div>
|
|
1053
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <span class="comment">// (2)</span></div>
|
|
1054
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="comment">// %0 = bitcast %struct.A* %param to i8*</span></div>
|
|
1055
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="comment">// %2 = bitcast %struct.B** %arrayidx to i8**</span></div>
|
|
1056
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <span class="comment">// %3 = load i8*, i8** %2</span></div>
|
|
1057
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="comment">// call void @memcpy(%0, %3, 80)</span></div>
|
|
1058
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <a class="code" href="namespaceSVF.html#affba423b674a0aba723e33101826e297">LLVMContext</a> &cxt = LLVMModuleSet::getLLVMModuleSet()->getContext();</div>
|
|
1059
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <span class="keywordflow">if</span> (value->getType() == PointerType::getInt8PtrTy(cxt))</div>
|
|
1060
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  {</div>
|
|
1061
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  <span class="comment">// (1)</span></div>
|
|
1062
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cb = SVFUtil::dyn_cast<CallBase>(value))</div>
|
|
1063
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  {</div>
|
|
1064
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cb);</div>
|
|
1065
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfInst))</div>
|
|
1066
|
+
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  {</div>
|
|
1067
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* bitCast = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">getUniqueUseViaCastInst</a>(cb))</div>
|
|
1068
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <span class="keywordflow">return</span> bitCast;</div>
|
|
1069
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  }</div>
|
|
1070
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  }</div>
|
|
1071
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="comment">// (2)</span></div>
|
|
1072
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* load = SVFUtil::dyn_cast<LoadInst>(value))</div>
|
|
1073
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  {</div>
|
|
1074
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>* bitCast = SVFUtil::dyn_cast<BitCastInst>(load->getPointerOperand()))</div>
|
|
1075
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <span class="keywordflow">return</span> bitCast->getOperand(0);</div>
|
|
1076
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  }</div>
|
|
1077
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  }</div>
|
|
1078
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  </div>
|
|
1079
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">return</span> value;</div>
|
|
1080
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> }</div>
|
|
1081
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  </div>
|
|
1082
|
+
<div class="line"><a name="l01119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5ae68d4465feb54fcb8fd0cf20b7a71a"> 1119</a></span> <span class="keywordtype">void</span> SVFIRBuilder::handleIndCall(<a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div>
|
|
1083
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> {</div>
|
|
1084
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfcall = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);</div>
|
|
1085
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfcalledval = LLVMModuleSet::getLLVMModuleSet()->getSVFValue(cs->getCalledOperand());</div>
|
|
1086
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  </div>
|
|
1087
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = pag->getICFG()->getCallICFGNode(svfcall);</div>
|
|
1088
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  pag->addIndirectCallsites(cbn,pag->getValueNode(svfcalledval));</div>
|
|
1089
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> }</div>
|
|
1090
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  </div>
|
|
1091
|
+
<div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767"> 1128</a></span> <span class="keywordtype">void</span> SVFIRBuilder::updateCallGraph(<a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph)</div>
|
|
1092
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> {</div>
|
|
1093
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-><a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div>
|
|
1094
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-><a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div>
|
|
1095
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div>
|
|
1096
|
+
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  {</div>
|
|
1097
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter->first;</div>
|
|
1098
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* callbase = SVFUtil::cast<CallBase>(LLVMModuleSet::getLLVMModuleSet()->getLLVMValue(callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
|
|
1099
|
+
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  assert(callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() && <span class="stringliteral">"this is not an indirect call?"</span>);</div>
|
|
1100
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a>& functions = iter->second;</div>
|
|
1101
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div>
|
|
1102
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  {</div>
|
|
1103
|
+
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast<Function>(LLVMModuleSet::getLLVMModuleSet()->getLLVMValue(*func_iter));</div>
|
|
1104
|
+
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  </div>
|
|
1105
|
+
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(*func_iter))</div>
|
|
1106
|
+
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  {</div>
|
|
1107
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  setCurrentLocation(callee, callee->empty() ? <span class="keyword">nullptr</span> : &callee->getEntryBlock());</div>
|
|
1108
|
+
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(callee);</div>
|
|
1109
|
+
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  handleExtCall(callbase, svfcallee);</div>
|
|
1110
|
+
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  }</div>
|
|
1111
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="keywordflow">else</span></div>
|
|
1112
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  {</div>
|
|
1113
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  setCurrentLocation(callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>(), callBlock-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">getParent</a>());</div>
|
|
1114
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  handleDirectCall(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>*<span class="keyword">></span>(callbase), callee);</div>
|
|
1115
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  }</div>
|
|
1116
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  }</div>
|
|
1117
|
+
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  }</div>
|
|
1118
|
+
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  </div>
|
|
1119
|
+
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <span class="comment">// dump SVFIR</span></div>
|
|
1120
|
+
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <span class="keywordflow">if</span> (Options::PAGDotGraph())</div>
|
|
1121
|
+
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  pag->dump(<span class="stringliteral">"svfir_final"</span>);</div>
|
|
1122
|
+
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> }</div>
|
|
1123
|
+
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  </div>
|
|
1124
|
+
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">/*</span></div>
|
|
1125
|
+
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"> * TODO: more sanity checks might be needed here</span></div>
|
|
1126
|
+
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"> */</span></div>
|
|
1127
|
+
<div class="line"><a name="l01164"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a09baa8c7246853c3faaed85b38f0da60"> 1164</a></span> <span class="keywordtype">void</span> SVFIRBuilder::sanityCheck()</div>
|
|
1128
|
+
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> {</div>
|
|
1129
|
+
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> nIter = pag->begin(); nIter != pag->end(); ++nIter)</div>
|
|
1130
|
+
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  {</div>
|
|
1131
|
+
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  (void) pag->getGNode(nIter->first);</div>
|
|
1132
|
+
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  <span class="comment">//TODO::</span></div>
|
|
1133
|
+
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  <span class="comment">// (1) every source(root) node of a pag tree should be object node</span></div>
|
|
1134
|
+
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  <span class="comment">// if a node has no incoming edge, but has outgoing edges</span></div>
|
|
1135
|
+
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <span class="comment">// then it has to be an object node.</span></div>
|
|
1136
|
+
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="comment">// (2) make sure every variable should be initialized</span></div>
|
|
1137
|
+
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="comment">// otherwise it causes the a null pointer, the aliasing relation may not be captured</span></div>
|
|
1138
|
+
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="comment">// when loading a pointer value should make sure</span></div>
|
|
1139
|
+
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="comment">// some value has been store into this pointer before</span></div>
|
|
1140
|
+
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="comment">// q = load p, some value should stored into p first like store w p;</span></div>
|
|
1141
|
+
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="comment">// (3) make sure PAGNode should not have a const expr value (pointer should have unique def)</span></div>
|
|
1142
|
+
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  <span class="comment">// (4) look closely into addComplexConsForExt, make sure program locations(e.g.,inst bb)</span></div>
|
|
1143
|
+
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  <span class="comment">// are set correctly for dummy gepval node</span></div>
|
|
1144
|
+
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  <span class="comment">// (5) reduce unnecessary copy edge (const casts) and ensure correctness.</span></div>
|
|
1144
1145
|
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  }</div>
|
|
1145
1146
|
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> }</div>
|
|
1146
1147
|
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  </div>
|
|
1147
|
-
<div class="line"><a name="
|
|
1148
|
-
<div class="line"><a name="
|
|
1149
|
-
<div class="line"><a name="
|
|
1150
|
-
<div class="line"><a name="
|
|
1151
|
-
<div class="line"><a name="
|
|
1152
|
-
<div class="line"><a name="
|
|
1153
|
-
<div class="line"><a name="
|
|
1154
|
-
<div class="line"><a name="
|
|
1155
|
-
<div class="line"><a name="
|
|
1156
|
-
<div class="line"><a name="
|
|
1157
|
-
<div class="line"><a name="
|
|
1158
|
-
<div class="line"><a name="
|
|
1159
|
-
<div class="line"><a name="
|
|
1160
|
-
<div class="line"><a name="
|
|
1161
|
-
<div class="line"><a name="
|
|
1162
|
-
<div class="line"><a name="
|
|
1163
|
-
<div class="line"><a name="
|
|
1164
|
-
<div class="line"><a name="
|
|
1165
|
-
<div class="line"><a name="
|
|
1166
|
-
<div class="line"><a name="
|
|
1167
|
-
<div class="line"><a name="
|
|
1168
|
-
<div class="line"><a name="
|
|
1169
|
-
<div class="line"><a name="
|
|
1170
|
-
<div class="line"><a name="
|
|
1171
|
-
<div class="line"><a name="
|
|
1172
|
-
<div class="line"><a name="
|
|
1173
|
-
<div class="line"><a name="
|
|
1174
|
-
<div class="line"><a name="
|
|
1175
|
-
<div class="line"><a name="
|
|
1176
|
-
<div class="line"><a name="
|
|
1177
|
-
<div class="line"><a name="
|
|
1178
|
-
<div class="line"><a name="
|
|
1179
|
-
<div class="line"><a name="
|
|
1180
|
-
<div class="line"><a name="
|
|
1181
|
-
<div class="line"><a name="
|
|
1182
|
-
<div class="line"><a name="
|
|
1183
|
-
<div class="line"><a name="
|
|
1184
|
-
<div class="line"><a name="
|
|
1185
|
-
<div class="line"><a name="
|
|
1186
|
-
<div class="line"><a name="
|
|
1187
|
-
<div class="line"><a name="
|
|
1188
|
-
<div class="line"><a name="
|
|
1189
|
-
<div class="line"><a name="
|
|
1190
|
-
<div class="line"><a name="
|
|
1191
|
-
<div class="line"><a name="
|
|
1192
|
-
<div class="line"><a name="
|
|
1193
|
-
<div class="line"><a name="
|
|
1194
|
-
<div class="line"><a name="
|
|
1195
|
-
<div class="line"><a name="
|
|
1196
|
-
<div class="line"><a name="
|
|
1197
|
-
<div class="line"><a name="
|
|
1198
|
-
<div class="line"><a name="
|
|
1199
|
-
<div class="line"><a name="
|
|
1200
|
-
<div class="line"><a name="
|
|
1201
|
-
<div class="line"><a name="
|
|
1202
|
-
<div class="line"><a name="
|
|
1203
|
-
<div class="line"><a name="
|
|
1204
|
-
<div class="line"><a name="
|
|
1205
|
-
<div class="line"><a name="
|
|
1206
|
-
<div class="line"><a name="
|
|
1207
|
-
<div class="line"><a name="
|
|
1208
|
-
<div class="line"><a name="
|
|
1209
|
-
<div class="line"><a name="
|
|
1210
|
-
<div class="line"><a name="
|
|
1211
|
-
<div class="line"><a name="
|
|
1212
|
-
<div class="line"><a name="
|
|
1213
|
-
<div class="line"><a name="
|
|
1214
|
-
<div class="line"><a name="
|
|
1215
|
-
<div class="line"><a name="
|
|
1216
|
-
<div class="line"><a name="
|
|
1217
|
-
<div class="line"><a name="
|
|
1218
|
-
<div class="line"><a name="
|
|
1219
|
-
<div class="line"><a name="
|
|
1220
|
-
<div class="line"><a name="
|
|
1221
|
-
<div class="line"><a name="
|
|
1222
|
-
<div class="line"><a name="
|
|
1223
|
-
<div class="line"><a name="
|
|
1224
|
-
<div class="line"><a name="
|
|
1225
|
-
<div class="line"><a name="
|
|
1226
|
-
<div class="line"><a name="
|
|
1227
|
-
<div class="line"><a name="
|
|
1228
|
-
<div class="line"><a name="
|
|
1229
|
-
<div class="line"><a name="
|
|
1230
|
-
<div class="line"><a name="
|
|
1231
|
-
<div class="line"><a name="
|
|
1232
|
-
<div class="line"><a name="
|
|
1233
|
-
<div class="line"><a name="
|
|
1234
|
-
<div class="line"><a name="
|
|
1235
|
-
<div class="line"><a name="
|
|
1236
|
-
<div class="line"><a name="
|
|
1237
|
-
<div class="line"><a name="
|
|
1238
|
-
<div class="line"><a name="
|
|
1239
|
-
<div class="line"><a name="
|
|
1240
|
-
<div class="line"><a name="
|
|
1241
|
-
<div class="line"><a name="
|
|
1242
|
-
<div class="line"><a name="
|
|
1243
|
-
<div class="line"><a name="
|
|
1244
|
-
<div class="line"><a name="
|
|
1245
|
-
<div class="line"><a name="
|
|
1246
|
-
<div class="line"><a name="
|
|
1247
|
-
<div class="line"><a name="
|
|
1248
|
-
<div class="line"><a name="
|
|
1249
|
-
<div class="line"><a name="
|
|
1250
|
-
<div class="line"><a name="
|
|
1251
|
-
<div class="line"><a name="
|
|
1252
|
-
<div class="line"><a name="
|
|
1253
|
-
<div class="line"><a name="
|
|
1254
|
-
<div class="line"><a name="
|
|
1255
|
-
<div class="line"><a name="
|
|
1256
|
-
<div class="line"><a name="
|
|
1257
|
-
<div class="line"><a name="
|
|
1258
|
-
<div class="line"><a name="
|
|
1259
|
-
<div class="line"><a name="
|
|
1260
|
-
<div class="line"><a name="
|
|
1261
|
-
<div class="line"><a name="
|
|
1262
|
-
<div class="line"><a name="
|
|
1263
|
-
<div class="line"><a name="
|
|
1264
|
-
<div class="line"><a name="
|
|
1265
|
-
<div class="line"><a name="
|
|
1266
|
-
<div class="line"><a name="
|
|
1267
|
-
<div class="line"><a name="
|
|
1268
|
-
<div class="line"><a name="
|
|
1269
|
-
<div class="line"><a name="
|
|
1270
|
-
<div class="line"><a name="
|
|
1271
|
-
<div class="line"><a name="
|
|
1272
|
-
<div class="line"><a name="
|
|
1273
|
-
<div class="line"><a name="
|
|
1274
|
-
<div class="line"><a name="
|
|
1275
|
-
<div class="line"><a name="
|
|
1276
|
-
<div class="line"><a name="
|
|
1277
|
-
<div class="line"><a name="
|
|
1278
|
-
<div class="line"><a name="
|
|
1279
|
-
<div class="line"><a name="
|
|
1280
|
-
<div class="line"><a name="
|
|
1281
|
-
<div class="line"><a name="
|
|
1282
|
-
<div class="line"><a name="
|
|
1283
|
-
<div class="line"><a name="
|
|
1284
|
-
<div class="line"><a name="
|
|
1285
|
-
<div class="line"><a name="
|
|
1286
|
-
<div class="line"><a name="
|
|
1287
|
-
<div class="line"><a name="
|
|
1288
|
-
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  {</div>
|
|
1289
|
-
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  icfgNode = pag->getICFG()->getFunExitICFGNode(curInst->getFunction());</div>
|
|
1290
|
-
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  }</div>
|
|
1291
|
-
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  <span class="keywordflow">else</span></div>
|
|
1292
|
-
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  {</div>
|
|
1293
|
-
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  <span class="keywordflow">if</span>(SVFUtil::isa<RetPE>(edge))</div>
|
|
1294
|
-
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  icfgNode = pag->getICFG()->getRetICFGNode(curInst);</div>
|
|
1295
|
-
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="keywordflow">else</span></div>
|
|
1296
|
-
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  icfgNode = pag->getICFG()->getICFGNode(curInst);</div>
|
|
1297
|
-
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  }</div>
|
|
1298
|
-
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  }</div>
|
|
1299
|
-
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg = SVFUtil::dyn_cast<SVFArgument>(curVal))</div>
|
|
1300
|
-
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  {</div>
|
|
1301
|
-
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  assert(curBB && (curBB->getParent()->getEntryBlock() == curBB));</div>
|
|
1302
|
-
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  icfgNode = pag->getICFG()->getFunEntryICFGNode(arg->getParent());</div>
|
|
1303
|
-
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  }</div>
|
|
1304
|
-
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFConstant>(curVal) ||</div>
|
|
1305
|
-
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  SVFUtil::isa<SVFFunction>(curVal) ||</div>
|
|
1306
|
-
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  SVFUtil::isa<SVFMetadataAsValue>(curVal))</div>
|
|
1307
|
-
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  {</div>
|
|
1308
|
-
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <span class="keywordflow">if</span> (!curBB)</div>
|
|
1309
|
-
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  pag->addGlobalPAGEdge(edge);</div>
|
|
1310
|
-
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  <span class="keywordflow">else</span></div>
|
|
1311
|
-
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  {</div>
|
|
1312
|
-
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  icfgNode = pag->getICFG()->getICFGNode(curBB->front());</div>
|
|
1313
|
-
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  }</div>
|
|
1314
|
-
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  }</div>
|
|
1315
|
-
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <span class="keywordflow">else</span></div>
|
|
1316
|
-
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  {</div>
|
|
1317
|
-
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what else value can we have?"</span>);</div>
|
|
1318
|
-
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  }</div>
|
|
1319
|
-
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  </div>
|
|
1320
|
-
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  pag->addToSVFStmtList(icfgNode,edge);</div>
|
|
1321
|
-
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  icfgNode-><a class="code" href="classSVF_1_1ICFGNode.html#a8a133398c691ab3639ceefbc57cd33be">addSVFStmt</a>(edge);</div>
|
|
1322
|
-
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* callPE = SVFUtil::dyn_cast<CallPE>(edge))</div>
|
|
1323
|
-
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  {</div>
|
|
1324
|
-
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*<span class="keyword">></span>(callPE->getCallSite());</div>
|
|
1325
|
-
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entryNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>*<span class="keyword">></span>(callPE->getFunEntryICFGNode());</div>
|
|
1326
|
-
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = pag->getICFG()->hasInterICFGEdge(callNode,entryNode, ICFGEdge::CallCF))</div>
|
|
1327
|
-
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  SVFUtil::cast<CallCFGEdge>(edge)->addCallPE(callPE);</div>
|
|
1328
|
-
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  }</div>
|
|
1329
|
-
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* retPE = SVFUtil::dyn_cast<RetPE>(edge))</div>
|
|
1330
|
-
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  {</div>
|
|
1331
|
-
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>*<span class="keyword">></span>(retPE->getCallSite()->getRetICFGNode());</div>
|
|
1332
|
-
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exitNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>*<span class="keyword">></span>(retPE->getFunExitICFGNode());</div>
|
|
1333
|
-
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = pag->getICFG()->hasInterICFGEdge(exitNode, retNode, ICFGEdge::RetCF))</div>
|
|
1334
|
-
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  SVFUtil::cast<RetCFGEdge>(edge)->addRetPE(retPE);</div>
|
|
1335
|
-
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  }</div>
|
|
1336
|
-
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> }</div>
|
|
1337
|
-
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  </div>
|
|
1338
|
-
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  </div>
|
|
1339
|
-
<div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7c401d6929e583be734c0c4e9957d0d7"> 1392</a></span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> SVFIRBuilder::getAccessPathFromBaseNode(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</div>
|
|
1340
|
-
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> {</div>
|
|
1341
|
-
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = pag->getGNode(nodeId);</div>
|
|
1342
|
-
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& geps = node-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(SVFStmt::Gep);</div>
|
|
1343
|
-
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  <span class="keywordflow">if</span>(geps.empty())</div>
|
|
1344
|
-
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>(0);</div>
|
|
1345
|
-
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  </div>
|
|
1346
|
-
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  assert(geps.size()==1 && <span class="stringliteral">"one node can only be connected by at most one gep edge!"</span>);</div>
|
|
1347
|
-
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  <a class="code" href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVFVar::iterator</a> it = geps.begin();</div>
|
|
1348
|
-
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* gepEdge = SVFUtil::cast<GepStmt>(*it);</div>
|
|
1349
|
-
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <span class="keywordflow">if</span>(gepEdge-><a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div>
|
|
1350
|
-
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>(0);</div>
|
|
1351
|
-
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  <span class="keywordflow">else</span></div>
|
|
1352
|
-
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  <span class="keywordflow">return</span> gepEdge-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>();</div>
|
|
1353
|
-
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> }</div>
|
|
1148
|
+
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  </div>
|
|
1149
|
+
<div class="line"><a name="l01190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c"> 1190</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> SVFIRBuilder::getGepValVar(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>& ap, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elementType)</div>
|
|
1150
|
+
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> {</div>
|
|
1151
|
+
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = pag->getBaseValVar(getValueNode(val));</div>
|
|
1152
|
+
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepval = pag->getGepValVar(curVal, base, ap);</div>
|
|
1153
|
+
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  <span class="keywordflow">if</span> (gepval==UINT_MAX)</div>
|
|
1154
|
+
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  {</div>
|
|
1155
|
+
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  assert(((<span class="keywordtype">int</span>) UINT_MAX)==-1 && <span class="stringliteral">"maximum limit of unsigned int is not -1?"</span>);</div>
|
|
1156
|
+
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="comment">/*</span></div>
|
|
1157
|
+
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"> * getGepValVar can only be called from two places:</span></div>
|
|
1158
|
+
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"> * 1. SVFIRBuilder::addComplexConsForExt to handle external calls</span></div>
|
|
1159
|
+
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"> * 2. SVFIRBuilder::getGlobalVarField to initialize global variable</span></div>
|
|
1160
|
+
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"> * so curVal can only be</span></div>
|
|
1161
|
+
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"> * 1. Instruction</span></div>
|
|
1162
|
+
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"> * 2. GlobalVariable</span></div>
|
|
1163
|
+
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment"> */</span></div>
|
|
1164
|
+
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  assert((SVFUtil::isa<SVFInstruction, SVFGlobalValue>(curVal)) && <span class="stringliteral">"curVal not an instruction or a globalvariable?"</span>);</div>
|
|
1165
|
+
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  </div>
|
|
1166
|
+
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  <span class="comment">// We assume every GepValNode and its GepEdge to the baseNode are unique across the whole program</span></div>
|
|
1167
|
+
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  <span class="comment">// We preserve the current BB information to restore it after creating the gepNode</span></div>
|
|
1168
|
+
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* cval = getCurrentValue();</div>
|
|
1169
|
+
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* cbb = getCurrentBB();</div>
|
|
1170
|
+
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  setCurrentLocation(curVal, <span class="keyword">nullptr</span>);</div>
|
|
1171
|
+
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* llvmmodule = LLVMModuleSet::getLLVMModuleSet();</div>
|
|
1172
|
+
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepNode= pag->addGepValNode(curVal, llvmmodule-><a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(val),ap, NodeIDAllocator::get()->allocateValueId(),elementType-><a class="code" href="classSVF_1_1SVFType.html#a3672b4797c400aac90c6d36ce29e0e57">getPointerTo</a>());</div>
|
|
1173
|
+
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>  addGepEdge(base, gepNode, ap, <span class="keyword">true</span>);</div>
|
|
1174
|
+
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  setCurrentLocation(cval, cbb);</div>
|
|
1175
|
+
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  <span class="keywordflow">return</span> gepNode;</div>
|
|
1176
|
+
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>  }</div>
|
|
1177
|
+
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  <span class="keywordflow">else</span></div>
|
|
1178
|
+
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordflow">return</span> gepval;</div>
|
|
1179
|
+
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> }</div>
|
|
1180
|
+
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  </div>
|
|
1181
|
+
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  </div>
|
|
1182
|
+
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment">/*</span></div>
|
|
1183
|
+
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"> * curVal <--------> PAGEdge</span></div>
|
|
1184
|
+
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment"> * Instruction Any Edge</span></div>
|
|
1185
|
+
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"> * Argument CopyEdge (SVFIR::addFormalParamBlackHoleAddrEdge)</span></div>
|
|
1186
|
+
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"> * ConstantExpr CopyEdge (Int2PtrConstantExpr CastConstantExpr SVFIRBuilder::processCE)</span></div>
|
|
1187
|
+
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"> * GepEdge (GepConstantExpr SVFIRBuilder::processCE)</span></div>
|
|
1188
|
+
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"> * ConstantPointerNull CopyEdge (3-->2 NullPtr-->BlkPtr SVFIR::addNullPtrNode)</span></div>
|
|
1189
|
+
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"> * AddrEdge (0-->2 BlkObj-->BlkPtr SVFIR::addNullPtrNode)</span></div>
|
|
1190
|
+
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"> * GlobalVariable AddrEdge (SVFIRBuilder::visitGlobal)</span></div>
|
|
1191
|
+
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"> * GepEdge (SVFIRBuilder::getGlobalVarField)</span></div>
|
|
1192
|
+
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment"> * Function AddrEdge (SVFIRBuilder::visitGlobal)</span></div>
|
|
1193
|
+
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"> * Constant StoreEdge (SVFIRBuilder::InitialGlobal)</span></div>
|
|
1194
|
+
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"> */</span></div>
|
|
1195
|
+
<div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01"> 1236</a></span> <span class="keywordtype">void</span> SVFIRBuilder::setCurrentBBAndValueForPAGEdge(<a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge)</div>
|
|
1196
|
+
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> {</div>
|
|
1197
|
+
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keywordflow">if</span> (SVFModule::pagReadFromTXT())</div>
|
|
1198
|
+
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  <span class="keywordflow">return</span>;</div>
|
|
1199
|
+
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  </div>
|
|
1200
|
+
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  assert(curVal && <span class="stringliteral">"current Val is nullptr?"</span>);</div>
|
|
1201
|
+
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  edge-><a class="code" href="classSVF_1_1SVFStmt.html#a0e45ab5b38059371c47d5f2011118a4d">setBB</a>(curBB!=<span class="keyword">nullptr</span> ? curBB : <span class="keyword">nullptr</span>);</div>
|
|
1202
|
+
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  edge-><a class="code" href="classSVF_1_1SVFStmt.html#a6ae58a22d43361904c7033f5c790da38">setValue</a>(curVal);</div>
|
|
1203
|
+
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="comment">// backmap in valuToEdgeMap</span></div>
|
|
1204
|
+
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  pag->mapValueToEdge(curVal, edge);</div>
|
|
1205
|
+
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = pag->getICFG()->getGlobalICFGNode();</div>
|
|
1206
|
+
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = SVFUtil::dyn_cast<SVFInstruction>(curVal))</div>
|
|
1207
|
+
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  {</div>
|
|
1208
|
+
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getFunction();</div>
|
|
1209
|
+
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getFunction();</div>
|
|
1210
|
+
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <span class="keywordflow">if</span>(srcFun!=<span class="keyword">nullptr</span> && !SVFUtil::isa<RetPE>(edge) && !SVFUtil::isa<SVFFunction>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getValue()))</div>
|
|
1211
|
+
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  {</div>
|
|
1212
|
+
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  assert(srcFun==curInst->getFunction() && <span class="stringliteral">"SrcNode of the PAGEdge not in the same function?"</span>);</div>
|
|
1213
|
+
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  }</div>
|
|
1214
|
+
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  <span class="keywordflow">if</span>(dstFun!=<span class="keyword">nullptr</span> && !SVFUtil::isa<CallPE>(edge) && !SVFUtil::isa<SVFFunction>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getValue()))</div>
|
|
1215
|
+
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  {</div>
|
|
1216
|
+
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  assert(dstFun==curInst->getFunction() && <span class="stringliteral">"DstNode of the PAGEdge not in the same function?"</span>);</div>
|
|
1217
|
+
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  }</div>
|
|
1218
|
+
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  </div>
|
|
1219
|
+
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  <span class="keywordflow">if</span> (!(SVFUtil::isa<GepStmt>(edge) && SVFUtil::isa<GepValVar>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>())))</div>
|
|
1220
|
+
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  assert(curBB && <span class="stringliteral">"instruction does not have a basic block??"</span>);</div>
|
|
1221
|
+
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  </div>
|
|
1222
|
+
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="keywordflow">if</span>(curInst->isRetInst())</div>
|
|
1223
|
+
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  {</div>
|
|
1224
|
+
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  icfgNode = pag->getICFG()->getFunExitICFGNode(curInst->getFunction());</div>
|
|
1225
|
+
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  }</div>
|
|
1226
|
+
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  <span class="keywordflow">else</span></div>
|
|
1227
|
+
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  {</div>
|
|
1228
|
+
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <span class="keywordflow">if</span>(SVFUtil::isa<RetPE>(edge))</div>
|
|
1229
|
+
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  icfgNode = pag->getICFG()->getRetICFGNode(curInst);</div>
|
|
1230
|
+
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keywordflow">else</span></div>
|
|
1231
|
+
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  icfgNode = pag->getICFG()->getICFGNode(curInst);</div>
|
|
1232
|
+
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  }</div>
|
|
1233
|
+
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  }</div>
|
|
1234
|
+
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg = SVFUtil::dyn_cast<SVFArgument>(curVal))</div>
|
|
1235
|
+
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  {</div>
|
|
1236
|
+
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  assert(curBB && (curBB->getParent()->getEntryBlock() == curBB));</div>
|
|
1237
|
+
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  icfgNode = pag->getICFG()->getFunEntryICFGNode(arg->getParent());</div>
|
|
1238
|
+
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  }</div>
|
|
1239
|
+
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFConstant>(curVal) ||</div>
|
|
1240
|
+
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  SVFUtil::isa<SVFFunction>(curVal) ||</div>
|
|
1241
|
+
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  SVFUtil::isa<SVFMetadataAsValue>(curVal))</div>
|
|
1242
|
+
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  {</div>
|
|
1243
|
+
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <span class="keywordflow">if</span> (!curBB)</div>
|
|
1244
|
+
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  pag->addGlobalPAGEdge(edge);</div>
|
|
1245
|
+
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">else</span></div>
|
|
1246
|
+
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  {</div>
|
|
1247
|
+
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  icfgNode = pag->getICFG()->getICFGNode(curBB->front());</div>
|
|
1248
|
+
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  }</div>
|
|
1249
|
+
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  }</div>
|
|
1250
|
+
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  <span class="keywordflow">else</span></div>
|
|
1251
|
+
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  {</div>
|
|
1252
|
+
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what else value can we have?"</span>);</div>
|
|
1253
|
+
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  }</div>
|
|
1254
|
+
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  </div>
|
|
1255
|
+
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  pag->addToSVFStmtList(icfgNode,edge);</div>
|
|
1256
|
+
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  icfgNode-><a class="code" href="classSVF_1_1ICFGNode.html#a8a133398c691ab3639ceefbc57cd33be">addSVFStmt</a>(edge);</div>
|
|
1257
|
+
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* callPE = SVFUtil::dyn_cast<CallPE>(edge))</div>
|
|
1258
|
+
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  {</div>
|
|
1259
|
+
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*<span class="keyword">></span>(callPE->getCallSite());</div>
|
|
1260
|
+
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entryNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>*<span class="keyword">></span>(callPE->getFunEntryICFGNode());</div>
|
|
1261
|
+
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = pag->getICFG()->hasInterICFGEdge(callNode,entryNode, ICFGEdge::CallCF))</div>
|
|
1262
|
+
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  SVFUtil::cast<CallCFGEdge>(edge)->addCallPE(callPE);</div>
|
|
1263
|
+
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  }</div>
|
|
1264
|
+
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* retPE = SVFUtil::dyn_cast<RetPE>(edge))</div>
|
|
1265
|
+
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  {</div>
|
|
1266
|
+
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>*<span class="keyword">></span>(retPE->getCallSite()->getRetICFGNode());</div>
|
|
1267
|
+
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exitNode = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>*<span class="keyword">></span>(retPE->getFunExitICFGNode());</div>
|
|
1268
|
+
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = pag->getICFG()->hasInterICFGEdge(exitNode, retNode, ICFGEdge::RetCF))</div>
|
|
1269
|
+
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  SVFUtil::cast<RetCFGEdge>(edge)->addRetPE(retPE);</div>
|
|
1270
|
+
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  }</div>
|
|
1271
|
+
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> }</div>
|
|
1272
|
+
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  </div>
|
|
1273
|
+
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  </div>
|
|
1274
|
+
<div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7c401d6929e583be734c0c4e9957d0d7"> 1323</a></span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> SVFIRBuilder::getAccessPathFromBaseNode(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</div>
|
|
1275
|
+
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> {</div>
|
|
1276
|
+
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = pag->getGNode(nodeId);</div>
|
|
1277
|
+
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& geps = node-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(SVFStmt::Gep);</div>
|
|
1278
|
+
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="keywordflow">if</span>(geps.empty())</div>
|
|
1279
|
+
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>(0);</div>
|
|
1280
|
+
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  </div>
|
|
1281
|
+
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  assert(geps.size()==1 && <span class="stringliteral">"one node can only be connected by at most one gep edge!"</span>);</div>
|
|
1282
|
+
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <a class="code" href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVFVar::iterator</a> it = geps.begin();</div>
|
|
1283
|
+
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* gepEdge = SVFUtil::cast<GepStmt>(*it);</div>
|
|
1284
|
+
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">if</span>(gepEdge-><a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div>
|
|
1285
|
+
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>(0);</div>
|
|
1286
|
+
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">else</span></div>
|
|
1287
|
+
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  <span class="keywordflow">return</span> gepEdge-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>();</div>
|
|
1288
|
+
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> }</div>
|
|
1354
1289
|
</div><!-- fragment --></div><!-- contents -->
|
|
1355
1290
|
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
|
|
1356
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_a3cbb4b4089c8b27d01da15f2d2f22e14"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">SVF::SVFCallInst::getArgOperand</a></div><div class="ttdeci">const SVFValue * getArgOperand(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00702">SVFValue.h:702</a></div></div>
|
|
1357
|
-
<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#l00216">SVFValue.h:216</a></div></div>
|
|
1358
1291
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a38ce45ae5f017c90115ce444b44d478c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">SVF::LLVMUtil::stripAllCasts</a></div><div class="ttdeci">const Value * stripAllCasts(const Value *val)</div><div class="ttdoc">Strip off the all casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00253">LLVMUtil.cpp:253</a></div></div>
|
|
1359
1292
|
<div class="ttc" id="aPAGBuilderFromFile_8h_html"><div class="ttname"><a href="PAGBuilderFromFile_8h.html">PAGBuilderFromFile.h</a></div></div>
|
|
1360
1293
|
<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#l00059">CHGBuilder.cpp:59</a></div></div>
|
|
1361
1294
|
<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#l00146">BasicTypes.h:146</a></div></div>
|
|
1362
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html">SVF::SVFCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00655">SVFValue.h:655</a></div></div>
|
|
1363
1295
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
|
|
1364
1296
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00515">SVFStatements.h:515</a></div></div>
|
|
1365
1297
|
<div class="ttc" id="anamespaceSVF_html_a292a6e8c5b4f2023b5575879c57eca62"><div class="ttname"><a href="namespaceSVF.html#a292a6e8c5b4f2023b5575879c57eca62">SVF::UnaryOperator</a></div><div class="ttdeci">llvm::UnaryOperator UnaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00178">BasicTypes.h:178</a></div></div>
|
|
1366
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1298
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00306">LLVMUtil.h:306</a></div></div>
|
|
1367
1299
|
<div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00261">ICFGNode.h:261</a></div></div>
|
|
1368
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1300
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00815">LLVMUtil.cpp:815</a></div></div>
|
|
1369
1301
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00097">GenericGraph.h:97</a></div></div>
|
|
1370
1302
|
<div class="ttc" id="aclassSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00487">ICFGNode.h:487</a></div></div>
|
|
1371
1303
|
<div class="ttc" id="aclassSVF_1_1ICFGBuilder_html"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html">SVF::ICFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00039">ICFGBuilder.h:39</a></div></div>
|
|
@@ -1374,22 +1306,20 @@ $(function() {
|
|
|
1374
1306
|
<div class="ttc" id="anamespaceSVF_html_aad5d26ab07a5d1314bdb8f54e0fcdb22"><div class="ttname"><a href="namespaceSVF.html#aad5d26ab07a5d1314bdb8f54e0fcdb22">SVF::BinaryOperator</a></div><div class="ttdeci">llvm::BinaryOperator BinaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00177">BasicTypes.h:177</a></div></div>
|
|
1375
1307
|
<div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
1376
1308
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_aafd4da7cef6387bb974abe20185b7b96"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96">SVF::SymbolTableInfo::retSyms</a></div><div class="ttdeci">FunToIDMapTy & retSyms()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00280">SymbolTableInfo.h:280</a></div></div>
|
|
1377
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1309
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00074">LLVMUtil.h:74</a></div></div>
|
|
1378
1310
|
<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#l00065">BasicTypes.h:65</a></div></div>
|
|
1379
|
-
<div class="ttc" id="anamespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
1380
1311
|
<div class="ttc" id="anamespaceSVF_html_a03db82b8a7914367024723dba4d6ca3c"><div class="ttname"><a href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">SVF::DataLayout</a></div><div class="ttdeci">llvm::DataLayout DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
|
|
1381
1312
|
<div class="ttc" id="aSVFType_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00551">SVFType.h:551</a></div></div>
|
|
1382
1313
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a05ca2987d9f8716c24e489bec53502f4"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">SVF::SymbolTableInfo::blackholeSymID</a></div><div class="ttdeci">SymID blackholeSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00198">SymbolTableInfo.h:198</a></div></div>
|
|
1383
1314
|
<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#l00571">SVFType.h:571</a></div></div>
|
|
1384
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00222">LLVMUtil.cpp:222</a></div></div>
|
|
1385
1315
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a8f3cb8a1db34dd692ee04561f4edeebf"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">SVF::SymbolTableInfo::valSyms</a></div><div class="ttdeci">ValueToIDMapTy & valSyms()</div><div class="ttdoc">Get different kinds of syms maps.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00260">SymbolTableInfo.h:260</a></div></div>
|
|
1386
1316
|
<div class="ttc" id="anamespaceSVF_html_a412280b134578905248ce0122c5db7c9"><div class="ttname"><a href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SVF::SwitchInst</a></div><div class="ttdeci">llvm::SwitchInst SwitchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00153">BasicTypes.h:153</a></div></div>
|
|
1387
1317
|
<div class="ttc" id="aclassSVF_1_1LLVMLoopAnalysis_html"><div class="ttname"><a href="classSVF_1_1LLVMLoopAnalysis.html">SVF::LLVMLoopAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMLoopAnalysis_8h_source.html#l00039">LLVMLoopAnalysis.h:39</a></div></div>
|
|
1388
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1318
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00766">LLVMUtil.cpp:766</a></div></div>
|
|
1389
1319
|
<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#l00080">BasicTypes.h:80</a></div></div>
|
|
1390
1320
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
|
|
1391
1321
|
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00594">SVFStatements.h:594</a></div></div>
|
|
1392
|
-
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#
|
|
1322
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00450">SVFUtil.h:450</a></div></div>
|
|
1393
1323
|
<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#l00549">SVFType.h:549</a></div></div>
|
|
1394
1324
|
<div class="ttc" id="aSVFFileSystem_8h_html"><div class="ttname"><a href="SVFFileSystem_8h.html">SVFFileSystem.h</a></div></div>
|
|
1395
1325
|
<div class="ttc" id="anamespacellvm_html_acfe99e9d441434240c79f6d76b73fe0a"><div class="ttname"><a href="namespacellvm.html#acfe99e9d441434240c79f6d76b73fe0a">llvm::bridge_gep_begin</a></div><div class="ttdeci">bridge_gep_iterator bridge_gep_begin(const User *GEP)</div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00149">GEPTypeBridgeIterator.h:149</a></div></div>
|
|
@@ -1409,7 +1339,7 @@ $(function() {
|
|
|
1409
1339
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_adaed6e68c2f53260ed4c4fc38b5c4721"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">SVF::SymbolTableInfo::nullPtrSymID</a></div><div class="ttdeci">SymID nullPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00188">SymbolTableInfo.h:188</a></div></div>
|
|
1410
1340
|
<div class="ttc" id="anamespaceSVF_html_a9868a60a9cc7b78965a23b5034100f88"><div class="ttname"><a href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">SVF::FreezeInst</a></div><div class="ttdeci">llvm::FreezeInst FreezeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00167">BasicTypes.h:167</a></div></div>
|
|
1411
1341
|
<div class="ttc" id="anamespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
|
|
1412
|
-
<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#
|
|
1342
|
+
<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#l00261">LLVMUtil.h:261</a></div></div>
|
|
1413
1343
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
1414
1344
|
<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#l00126">BasicTypes.h:126</a></div></div>
|
|
1415
1345
|
<div class="ttc" id="anamespaceSVF_html_ac7dcc6103dee3a0bbc2fd2e02716a154"><div class="ttname"><a href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">SVF::ReturnInst</a></div><div class="ttdeci">llvm::ReturnInst ReturnInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00155">BasicTypes.h:155</a></div></div>
|
|
@@ -1422,7 +1352,7 @@ $(function() {
|
|
|
1422
1352
|
<div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
1423
1353
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ab582424fdb6d9674c1bd4466cdfbe497"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">SVF::SymbolTableInfo::constantSymID</a></div><div class="ttdeci">SymID constantSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00193">SymbolTableInfo.h:193</a></div></div>
|
|
1424
1354
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a8a133398c691ab3639ceefbc57cd33be"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a8a133398c691ab3639ceefbc57cd33be">SVF::ICFGNode::addSVFStmt</a></div><div class="ttdeci">void addSVFStmt(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00122">ICFGNode.h:122</a></div></div>
|
|
1425
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
1355
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00490">SVFValue.h:490</a></div></div>
|
|
1426
1356
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
|
|
1427
1357
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html_a6ae58a22d43361904c7033f5c790da38"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a6ae58a22d43361904c7033f5c790da38">SVF::SVFStmt::setValue</a></div><div class="ttdeci">void setValue(const SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00143">SVFStatements.h:143</a></div></div>
|
|
1428
1358
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap & getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
|
|
@@ -1433,10 +1363,8 @@ $(function() {
|
|
|
1433
1363
|
<div class="ttc" id="anamespaceSVF_html_ac8d4990439af7a2ecca7e15383119674"><div class="ttname"><a href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">SVF::PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00163">BasicTypes.h:163</a></div></div>
|
|
1434
1364
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath & getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00490">SVFStatements.h:490</a></div></div>
|
|
1435
1365
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ab95df74c97fba13206df48e00131e15f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab95df74c97fba13206df48e00131e15f">SVF::AccessPath::setFldIdx</a></div><div class="ttdeci">void setFldIdx(APOffset idx)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00102">AccessPath.h:102</a></div></div>
|
|
1436
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a76b0d0ac69c170838cfc8ee26f4518a0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">SVF::LLVMUtil::getProgFunction</a></div><div class="ttdeci">const Function * getProgFunction(const std::string &funName)</div><div class="ttdoc">Get program entry function from module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00089">LLVMUtil.h:89</a></div></div>
|
|
1437
1366
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
1438
|
-
<div class="ttc" id="
|
|
1439
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00282">LLVMUtil.h:282</a></div></div>
|
|
1367
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00281">LLVMUtil.h:281</a></div></div>
|
|
1440
1368
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
1441
1369
|
<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#l00270">SVFValue.h:270</a></div></div>
|
|
1442
1370
|
<div class="ttc" id="aclassSVF_1_1CHGBuilder_html"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html">SVF::CHGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8h_source.html#l00036">CHGBuilder.h:36</a></div></div>
|
|
@@ -1444,18 +1372,17 @@ $(function() {
|
|
|
1444
1372
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html_aa11226a2e4fa6a7b1d78006cc8ca0518"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">SVF::CallICFGNode::isIndirectCall</a></div><div class="ttdeci">bool isIndirectCall() const</div><div class="ttdoc">Return true if this is an indirect call.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00440">ICFGNode.h:440</a></div></div>
|
|
1445
1373
|
<div class="ttc" id="aBasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
1446
1374
|
<div class="ttc" id="anamespaceSVF_html_a3bacb4f95c73e6d794901d01c6b65a83"><div class="ttname"><a href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF::AllocaInst</a></div><div class="ttdeci">llvm::AllocaInst AllocaInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
|
|
1447
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1375
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00271">LLVMUtil.h:271</a></div></div>
|
|
1448
1376
|
<div class="ttc" id="anamespaceSVF_html_ab7fac9d4a4839be445c89777e21bc307"><div class="ttname"><a href="namespaceSVF.html#ab7fac9d4a4839be445c89777e21bc307">SVF::SelectInst</a></div><div class="ttdeci">llvm::SelectInst SelectInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00172">BasicTypes.h:172</a></div></div>
|
|
1449
1377
|
<div class="ttc" id="anamespaceSVF_html_a5d875a9d726bb9f68a17efa528dec0b4"><div class="ttname"><a href="namespaceSVF.html#a5d875a9d726bb9f68a17efa528dec0b4">SVF::CmpInst</a></div><div class="ttdeci">llvm::CmpInst CmpInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
|
|
1450
1378
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
|
|
1451
1379
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
1452
|
-
<div class="ttc" id="
|
|
1453
|
-
<div class="ttc" id="
|
|
1454
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00242">LLVMUtil.h:242</a></div></div>
|
|
1380
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00329">LLVMUtil.h:329</a></div></div>
|
|
1381
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00241">LLVMUtil.h:241</a></div></div>
|
|
1455
1382
|
<div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
|
|
1456
1383
|
<div class="ttc" id="anamespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
|
|
1457
1384
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a3f9612f32c651220386beb0514f8fcff"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff">SVF::SymbolTableInfo::objSyms</a></div><div class="ttdeci">ValueToIDMapTy & objSyms()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00265">SymbolTableInfo.h:265</a></div></div>
|
|
1458
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1385
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00251">LLVMUtil.h:251</a></div></div>
|
|
1459
1386
|
<div class="ttc" id="anamespaceSVF_html_ace1fd4c32134018e2f6d5da193524986"><div class="ttname"><a href="namespaceSVF.html#ace1fd4c32134018e2f6d5da193524986">SVF::ExtractValueInst</a></div><div class="ttdeci">llvm::ExtractValueInst ExtractValueInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00158">BasicTypes.h:158</a></div></div>
|
|
1460
1387
|
<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#l00082">BasicTypes.h:82</a></div></div>
|
|
1461
1388
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00460">SVFStatements.h:460</a></div></div>
|
|
@@ -1470,16 +1397,16 @@ $(function() {
|
|
|
1470
1397
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
1471
1398
|
<div class="ttc" id="anamespaceSVF_html_afc50da46a6ea7c2cf61683bbec4d7c8d"><div class="ttname"><a href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">SVF::BitCastInst</a></div><div class="ttdeci">llvm::BitCastInst BitCastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00151">BasicTypes.h:151</a></div></div>
|
|
1472
1399
|
<div class="ttc" id="anamespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00145">BasicTypes.h:145</a></div></div>
|
|
1473
|
-
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#
|
|
1400
|
+
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
1474
1401
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a1689fa03795200b501ae3887906e7e72"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">SVF::SymbolTableInfo::blkPtrSymID</a></div><div class="ttdeci">SymID blkPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00183">SymbolTableInfo.h:183</a></div></div>
|
|
1475
|
-
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
|
|
1476
1402
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
1477
1403
|
<div class="ttc" id="anamespaceSVF_html_afc1b50355821e7299df03b026e36f1df"><div class="ttname"><a href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">SVF::User</a></div><div class="ttdeci">llvm::User User</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00140">BasicTypes.h:140</a></div></div>
|
|
1478
1404
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
|
|
1479
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">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_8h_source.html#
|
|
1405
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">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_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
|
|
1480
1406
|
<div class="ttc" id="anamespaceSVF_html_a56cb9d6d1e05f6c31bfe1a4045bc8b5f"><div class="ttname"><a href="namespaceSVF.html#a56cb9d6d1e05f6c31bfe1a4045bc8b5f">SVF::InvokeInst</a></div><div class="ttdeci">llvm::InvokeInst InvokeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
|
|
1481
1407
|
<div class="ttc" id="aclassllvm_1_1generic__bridge__gep__type__iterator_html"><div class="ttname"><a href="classllvm_1_1generic__bridge__gep__type__iterator.html">llvm::generic_bridge_gep_type_iterator</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00017">GEPTypeBridgeIterator.h:17</a></div></div>
|
|
1482
|
-
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
1408
|
+
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01159">LLVMUtil.cpp:1159</a></div></div>
|
|
1409
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00044">LLVMModule.h:44</a></div></div>
|
|
1483
1410
|
<div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00324">ICFGNode.h:324</a></div></div>
|
|
1484
1411
|
<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>
|
|
1485
1412
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< SVFVar, SVFStmt >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00359">GenericGraph.h:359</a></div></div>
|
|
@@ -1491,25 +1418,25 @@ $(function() {
|
|
|
1491
1418
|
<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>
|
|
1492
1419
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a2f5471985dfe62bc9ded830a693ab153"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVF::GenericNode::iterator</a></div><div class="ttdeci">GEdgeSetTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00154">GenericGraph.h:154</a></div></div>
|
|
1493
1420
|
<div class="ttc" id="aclassSVF_1_1PAGBuilderFromFile_html_ac5a5058088d03fc9e0e8a0ed8b4367aa"><div class="ttname"><a href="classSVF_1_1PAGBuilderFromFile.html#ac5a5058088d03fc9e0e8a0ed8b4367aa">SVF::PAGBuilderFromFile::build</a></div><div class="ttdeci">SVFIR * build()</div><div class="ttdoc">Start building.</div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8cpp_source.html#l00059">PAGBuilderFromFile.cpp:59</a></div></div>
|
|
1494
|
-
<div class="ttc" id="
|
|
1421
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01122">LLVMModule.cpp:1122</a></div></div>
|
|
1422
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00231">LLVMUtil.h:231</a></div></div>
|
|
1495
1423
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1496
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1497
|
-
<div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
1424
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00317">LLVMUtil.h:317</a></div></div>
|
|
1425
|
+
<div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00859">SVFValue.h:859</a></div></div>
|
|
1498
1426
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a76964ef7d4842a469d7720881499d8a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">SVF::SVFVar::getIncomingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy & getIncomingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get incoming SVFIR statements (edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00148">SVFVariables.h:148</a></div></div>
|
|
1499
1427
|
<div class="ttc" id="aclassSVF_1_1ICFGBuilder_html_ae66565ee32fff4ef5f0157e867333250"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#ae66565ee32fff4ef5f0157e867333250">SVF::ICFGBuilder::build</a></div><div class="ttdeci">void build(SVFModule *svfModule)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8cpp_source.html#l00042">ICFGBuilder.cpp:42</a></div></div>
|
|
1500
1428
|
<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#l00543">SVFType.h:543</a></div></div>
|
|
1501
|
-
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html_ae009f41cbf48d949d4325e08fe8d7198"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">SVF::SVFInstruction::getParent</a></div><div class="ttdeci">const SVFBasicBlock * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
1429
|
+
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html_ae009f41cbf48d949d4325e08fe8d7198"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">SVF::SVFInstruction::getParent</a></div><div class="ttdeci">const SVFBasicBlock * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00620">SVFValue.h:620</a></div></div>
|
|
1502
1430
|
<div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
1503
|
-
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
1431
|
+
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00593">SVFValue.h:593</a></div></div>
|
|
1504
1432
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
|
|
1505
1433
|
<div class="ttc" id="aCHGBuilder_8h_html"><div class="ttname"><a href="CHGBuilder_8h.html">CHGBuilder.h</a></div></div>
|
|
1506
1434
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00206">LLVMUtil.cpp:206</a></div></div>
|
|
1507
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ab654651e3117e8480544615fb1574766"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ab654651e3117e8480544615fb1574766">SVF::SVFCallInst::getCalledFunction</a></div><div class="ttdeci">const SVFFunction * getCalledFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00719">SVFValue.h:719</a></div></div>
|
|
1508
1435
|
<div class="ttc" id="aclassSVF_1_1PAGBuilderFromFile_html"><div class="ttname"><a href="classSVF_1_1PAGBuilderFromFile.html">SVF::PAGBuilderFromFile</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8h_source.html#l00041">PAGBuilderFromFile.h:41</a></div></div>
|
|
1509
1436
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00253">SVFValue.h:253</a></div></div>
|
|
1510
1437
|
<div class="ttc" id="aSymbolTableBuilder_8h_html"><div class="ttname"><a href="SymbolTableBuilder_8h.html">SymbolTableBuilder.h</a></div></div>
|
|
1511
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1512
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1438
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00295">LLVMUtil.h:295</a></div></div>
|
|
1439
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00119">LLVMUtil.h:119</a></div></div>
|
|
1513
1440
|
<div class="ttc" id="anamespaceSVF_html_a7332f8059ea95472dcc231de884a5768"><div class="ttname"><a href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">SVF::ConstantData</a></div><div class="ttdeci">llvm::ConstantData ConstantData</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
|
|
1514
1441
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00101">GenericGraph.h:101</a></div></div>
|
|
1515
1442
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|