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
|
@@ -99,801 +99,136 @@ $(function() {
|
|
|
99
99
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div>
|
|
100
100
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
|
101
101
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="ExtAPI_8h.html">Util/ExtAPI.h</a>"</span></div>
|
|
102
|
-
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> 
|
|
103
|
-
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="
|
|
104
|
-
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> 
|
|
105
|
-
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <
|
|
106
|
-
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> 
|
|
107
|
-
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="
|
|
108
|
-
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> 
|
|
109
|
-
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> 
|
|
110
|
-
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> 
|
|
111
|
-
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> 
|
|
112
|
-
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> 
|
|
113
|
-
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
|
114
|
-
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> 
|
|
115
|
-
<div class="line"><a name="l00044"></a><span class="lineno"
|
|
116
|
-
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> 
|
|
117
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> 
|
|
118
|
-
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="
|
|
119
|
-
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> 
|
|
120
|
-
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> 
|
|
121
|
-
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> 
|
|
122
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> 
|
|
123
|
-
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> 
|
|
124
|
-
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> 
|
|
125
|
-
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> 
|
|
126
|
-
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
|
|
127
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> 
|
|
128
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
|
|
129
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
|
|
130
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
131
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
|
|
132
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> 
|
|
133
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
134
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
135
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
136
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> 
|
|
137
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
138
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> 
|
|
139
|
-
<div class="line"><a name="l00068"></a><span class="lineno"
|
|
140
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
141
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
142
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">
|
|
143
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
144
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
145
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
146
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
|
|
147
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
148
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
149
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> 
|
|
150
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
151
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="
|
|
152
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
153
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
154
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
155
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
156
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> 
|
|
157
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
158
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">
|
|
159
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
160
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
161
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
162
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
163
|
-
<div class="line"><a name="l00092"></a><span class="lineno"
|
|
164
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
165
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
166
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
167
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
168
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
169
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
170
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
171
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
|
|
172
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
173
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> 
|
|
174
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
175
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="
|
|
176
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
178
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> 
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
185
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="
|
|
186
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="
|
|
187
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
188
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
189
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> 
|
|
191
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
192
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
194
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
102
|
+
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
|
103
|
+
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
|
|
104
|
+
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
|
105
|
+
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <a class="code" href="classSVF_1_1ExtAPI.html">ExtAPI</a>* <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">ExtAPI::extOp</a> = <span class="keyword">nullptr</span>;</div>
|
|
106
|
+
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
|
107
|
+
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99"> 36</a></span> <a class="code" href="classSVF_1_1ExtAPI.html">ExtAPI</a>* <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& path)</div>
|
|
108
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
|
|
109
|
+
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> == <span class="keyword">nullptr</span>)</div>
|
|
110
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div>
|
|
111
|
+
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">ExtAPI</a>;</div>
|
|
112
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div>
|
|
113
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
114
|
+
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div>
|
|
115
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
|
116
|
+
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90"> 45</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">ExtAPI::destory</a>()</div>
|
|
117
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
|
|
118
|
+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> != <span class="keyword">nullptr</span>)</div>
|
|
119
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
|
|
120
|
+
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
121
|
+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">nullptr</span>;</div>
|
|
122
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div>
|
|
123
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
|
|
124
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
|
125
|
+
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef"> 54</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">ExtAPI::getExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
126
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
|
|
127
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
128
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> std::vector<std::string>& annotations = fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
|
|
129
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : annotations)</div>
|
|
130
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
131
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">return</span> annotation;</div>
|
|
132
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
|
133
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div>
|
|
134
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
|
135
|
+
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd"> 64</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">ExtAPI::hasExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
136
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div>
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> std::vector<std::string>& annotations = fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
|
|
139
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : annotations)</div>
|
|
140
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
141
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
142
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
143
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
|
|
144
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
|
|
145
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Does (F) have a static var X (unavailable to us) that its return points to?</span></div>
|
|
146
|
+
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357"> 75</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">ExtAPI::has_static</a>(<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>)</div>
|
|
147
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div>
|
|
148
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"STATIC"</span>);</div>
|
|
149
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div>
|
|
150
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
|
151
|
+
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742"> 80</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">ExtAPI::is_memcpy</a>(<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>)</div>
|
|
152
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div>
|
|
153
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMCPY"</span>);</div>
|
|
154
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
|
|
155
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
|
156
|
+
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8"> 85</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">ExtAPI::is_memset</a>(<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>)</div>
|
|
157
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
|
|
158
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMSET"</span>);</div>
|
|
159
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div>
|
|
160
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
|
161
|
+
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d"> 90</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">ExtAPI::is_alloc</a>(<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>)</div>
|
|
162
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div>
|
|
163
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_RET"</span>);</div>
|
|
164
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
|
|
165
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
|
|
166
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// Does (F) allocate a new object and assign it to one of its arguments?</span></div>
|
|
167
|
+
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477"> 96</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">ExtAPI::is_arg_alloc</a>(<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>)</div>
|
|
168
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div>
|
|
169
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_ARG"</span>);</div>
|
|
170
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
|
|
171
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
|
172
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// Get the position of argument which holds the new object</span></div>
|
|
173
|
+
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a"> 102</a></span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">ExtAPI::get_alloc_arg_pos</a>(<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>)</div>
|
|
174
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> {</div>
|
|
175
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> s = <span class="stringliteral">"ALLOC_ARG"</span>;</div>
|
|
176
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocArg = <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">getExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, s);</div>
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  assert(!allocArg.empty() && <span class="stringliteral">"Not an alloc call via argument or incorrect extern function annotation!"</span>);</div>
|
|
178
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>;</div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span> (<span class="keywordtype">char</span> c : allocArg)</div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a>(c))</div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.push_back(c);</div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
|
185
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  assert(!<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.empty() && <span class="stringliteral">"Incorrect naming convention for svf external functions(ALLOC_ARG + number)?"</span>);</div>
|
|
186
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> std::stoi(<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>);</div>
|
|
187
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</div>
|
|
188
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Does (F) reallocate a new object?</span></div>
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4"> 119</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">ExtAPI::is_realloc</a>(<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>)</div>
|
|
191
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
|
|
192
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"REALLOC_RET"</span>);</div>
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div>
|
|
194
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
|
|
195
195
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
198
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
199
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
201
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
|
206
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
207
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// 1. Explicit path provided</span></div>
|
|
208
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">// 2. default path (get ExtAPI.json path from Util/config.h)</span></div>
|
|
209
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// 3. from $SVF_DIR</span></div>
|
|
210
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// 4. from "npm root"(If SVF is installed via npm)</span></div>
|
|
211
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
|
212
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> jsonFilePath = path;</div>
|
|
213
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (!jsonFilePath.empty() && !stat(jsonFilePath.c_str(), &statbuf))</div>
|
|
214
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div>
|
|
215
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> = <a class="code" href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a>(jsonFilePath, statbuf.st_size);</div>
|
|
216
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
217
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
|
218
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
|
|
219
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  jsonFilePath = <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(PROJECT_PATH) + <span class="charliteral">'/'</span> + <a class="code" href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a>;</div>
|
|
220
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">if</span> (!stat(jsonFilePath.c_str(), &statbuf))</div>
|
|
221
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div>
|
|
222
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> = <a class="code" href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a>(jsonFilePath, statbuf.st_size);</div>
|
|
223
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
224
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
|
225
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
|
226
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  jsonFilePath = <a class="code" href="ExtAPI_8cpp.html#a82e0f4095086de7f384a1f55838b5d28">getJsonFile</a>(<span class="stringliteral">"echo $SVF_DIR"</span>);</div>
|
|
227
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span> (!stat(jsonFilePath.c_str(), &statbuf))</div>
|
|
228
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div>
|
|
229
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> = <a class="code" href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a>(jsonFilePath, statbuf.st_size);</div>
|
|
230
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
231
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div>
|
|
232
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
|
233
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  jsonFilePath = <a class="code" href="ExtAPI_8cpp.html#a82e0f4095086de7f384a1f55838b5d28">getJsonFile</a>(<span class="stringliteral">"npm root"</span>);</div>
|
|
234
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (!stat(jsonFilePath.c_str(), &statbuf))</div>
|
|
235
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
|
236
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> = <a class="code" href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a>(jsonFilePath, statbuf.st_size);</div>
|
|
237
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
238
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div>
|
|
239
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"No JsonFile found at "</span> << jsonFilePath << <span class="stringliteral">" for getExtAPI(); set $SVF_DIR first!\n"</span>;</div>
|
|
240
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  abort();</div>
|
|
241
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div>
|
|
242
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
243
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
|
|
244
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
|
245
|
-
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90"> 174</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">ExtAPI::destory</a>()</div>
|
|
246
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div>
|
|
247
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> != <span class="keyword">nullptr</span>)</div>
|
|
248
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div>
|
|
249
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
250
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">nullptr</span>;</div>
|
|
251
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
|
252
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> != <span class="keyword">nullptr</span>)</div>
|
|
253
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
254
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a>);</div>
|
|
255
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> = <span class="keyword">nullptr</span>;</div>
|
|
256
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
|
|
257
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div>
|
|
258
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
|
|
259
|
-
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a112b27cba6b2be4f4c1f452d5ee627b4"> 188</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExtAPI.html#a112b27cba6b2be4f4c1f452d5ee627b4">ExtAPI::add_entry</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* funName, <span class="keyword">const</span> <span class="keywordtype">char</span>* returnType,</div>
|
|
260
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  std::vector<const char*> argTypes, <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">extType</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
|
|
261
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">bool</span> overwrite_app_function)</div>
|
|
262
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> {</div>
|
|
263
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  assert(<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> && <span class="stringliteral">"Parse the json before adding additional entries"</span>);</div>
|
|
264
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  assert(<a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(funName) == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a> && <span class="stringliteral">"Do not add entries that already exist"</span>);</div>
|
|
265
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">auto</span> entry = cJSON_CreateObject();</div>
|
|
266
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
267
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// add the signature fields</span></div>
|
|
268
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">auto</span> returnTypeString = cJSON_CreateString(returnType);</div>
|
|
269
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  cJSON_AddItemToObject(entry, <span class="stringliteral">"return"</span>, returnTypeString);</div>
|
|
270
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div>
|
|
271
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  std::stringstream ss;</div>
|
|
272
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  ss << <span class="stringliteral">"("</span>;</div>
|
|
273
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> str : argTypes)</div>
|
|
274
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  ss << str << <span class="stringliteral">","</span>;</div>
|
|
275
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> formattedArgs = ss.str();</div>
|
|
276
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">if</span> (formattedArgs.back() == <span class="charliteral">','</span>)</div>
|
|
277
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  formattedArgs.back() = <span class="charliteral">')'</span>;</div>
|
|
278
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">else</span></div>
|
|
279
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  formattedArgs.append(<span class="stringliteral">")"</span>);</div>
|
|
280
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">auto</span> argsString = cJSON_CreateString(formattedArgs.c_str());</div>
|
|
281
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  cJSON_AddItemToObject(entry, <span class="stringliteral">"argument"</span>, argsString);</div>
|
|
282
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
|
283
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// add the type field</span></div>
|
|
284
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">auto</span> typeString = cJSON_CreateString(<a class="code" href="classSVF_1_1ExtAPI.html#aa98b80dc86d0549183ec69b44b391bd7">extType_toString</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>).c_str());</div>
|
|
285
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  cJSON_AddItemToObject(entry, <a class="code" href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a>, typeString);</div>
|
|
286
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
|
287
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// add the 'overwrite_app_function' field</span></div>
|
|
288
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">auto</span> overwriteBool = cJSON_CreateNumber(overwrite_app_function ? 1 : 0);</div>
|
|
289
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  cJSON_AddItemToObject(entry, <a class="code" href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a>, overwriteBool);</div>
|
|
290
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
|
291
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// add object to root</span></div>
|
|
292
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  cJSON_AddItemToObject(<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a>, funName, entry);</div>
|
|
293
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div>
|
|
294
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
|
|
295
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// Get the corresponding name in ext_t, e.g. "EXT_ADDR" in {"addr", EXT_ADDR},</span></div>
|
|
296
|
-
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a1930d622cd47f7fd875e1964b65ec506"> 225</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a1930d622cd47f7fd875e1964b65ec506">ExtAPI::get_opName</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& s)</div>
|
|
297
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div>
|
|
298
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> end = 0;</div>
|
|
299
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">while</span> (end < s.size() && !isdigit(s[end]))</div>
|
|
300
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  end++;</div>
|
|
301
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> s.substr(0, end);</div>
|
|
302
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> }</div>
|
|
303
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  </div>
|
|
304
|
-
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#aa98b80dc86d0549183ec69b44b391bd7"> 233</a></span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& <a class="code" href="classSVF_1_1ExtAPI.html#aa98b80dc86d0549183ec69b44b391bd7">ExtAPI::extType_toString</a>(<a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">extType</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
305
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div>
|
|
306
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">auto</span> it =</div>
|
|
307
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  std::find_if(<a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.begin(), <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.end(),</div>
|
|
308
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  [&](<span class="keyword">const</span> <span class="keyword">auto</span>& pair)</div>
|
|
309
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div>
|
|
310
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  return pair.second == type;</div>
|
|
311
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  });</div>
|
|
312
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  assert(it != <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.end());</div>
|
|
313
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> it->first;</div>
|
|
314
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> }</div>
|
|
315
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
|
|
316
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// Get numeric index of the argument in external function</span></div>
|
|
317
|
-
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#af9462a56a96fcbf93252b9b51166987d"> 246</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#af9462a56a96fcbf93252b9b51166987d">ExtAPI::getArgPos</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& s)</div>
|
|
318
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> {</div>
|
|
319
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> start = 0;</div>
|
|
320
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">while</span> (start < s.size() && isalpha(s[start]))</div>
|
|
321
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  start++;</div>
|
|
322
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">if</span> (s.substr(0, start) != <span class="stringliteral">"Arg"</span>)</div>
|
|
323
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"the argument of extern function in ExtAPI.json should start with 'Arg' !"</span>);</div>
|
|
324
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> end = start + 1;</div>
|
|
325
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">while</span> (end < s.size() && isdigit(s[end]))</div>
|
|
326
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  end++;</div>
|
|
327
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> digitStr = s.substr(start, end - start);</div>
|
|
328
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> argNum = atoi(digitStr.c_str());</div>
|
|
329
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">return</span> argNum;</div>
|
|
330
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> }</div>
|
|
331
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
|
332
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// return value >= 0 is an argument node</span></div>
|
|
333
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment">// return value = -1 is an inst node</span></div>
|
|
334
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// return value = -2 is a Dummy node</span></div>
|
|
335
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment">// return value = -3 is an object node</span></div>
|
|
336
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// return value = -4 is a nullptr node</span></div>
|
|
337
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// return value = -5 is an offset</span></div>
|
|
338
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// return value = -6 is an illegal operand format</span></div>
|
|
339
|
-
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a2531eb3ef37af4aff095db0cef438934"> 268</a></span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a2531eb3ef37af4aff095db0cef438934">ExtAPI::getNodeIDType</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& s)</div>
|
|
340
|
-
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div>
|
|
341
|
-
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> argPos = -1;</div>
|
|
342
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">// 'A' represents an argument</span></div>
|
|
343
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (s.size() == 0)</div>
|
|
344
|
-
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> -5;</div>
|
|
345
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> start = 0;</div>
|
|
346
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">while</span> (start < s.size() && isalpha(s[start]))</div>
|
|
347
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  start++;</div>
|
|
348
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> argStr = s.substr(0, start);</div>
|
|
349
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">if</span> (argStr == <span class="stringliteral">"Arg"</span>)</div>
|
|
350
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  {</div>
|
|
351
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> end = start + 1;</div>
|
|
352
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">while</span> (end < s.size() && isdigit(s[end]))</div>
|
|
353
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  end++;</div>
|
|
354
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> digitStr = s.substr(start, end - start);</div>
|
|
355
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  argPos = atoi(digitStr.c_str());</div>
|
|
356
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> argPos;</div>
|
|
357
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
358
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
|
|
359
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<std::string, s32_t></a> argStrToBinOp =</div>
|
|
360
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
361
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {<span class="stringliteral">"Ret"</span>, -1},</div>
|
|
362
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {<span class="stringliteral">"Dummy"</span>, -2},</div>
|
|
363
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {<span class="stringliteral">"Obj"</span>, -3},</div>
|
|
364
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {<span class="stringliteral">"NullPtr"</span>, -4},</div>
|
|
365
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {<span class="stringliteral">"Add"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>},</div>
|
|
366
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {<span class="stringliteral">"Sub"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>},</div>
|
|
367
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {<span class="stringliteral">"Mul"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>},</div>
|
|
368
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {<span class="stringliteral">"SDiv"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>},</div>
|
|
369
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {<span class="stringliteral">"SRem"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>},</div>
|
|
370
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {<span class="stringliteral">"Xor"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>},</div>
|
|
371
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {<span class="stringliteral">"And"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>},</div>
|
|
372
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {<span class="stringliteral">"Or"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>},</div>
|
|
373
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {<span class="stringliteral">"AShr"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>},</div>
|
|
374
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  {<span class="stringliteral">"Shl"</span>, <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>},</div>
|
|
375
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {<span class="stringliteral">"ICMP_EQ"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>},</div>
|
|
376
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {<span class="stringliteral">"ICMP_NE"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>},</div>
|
|
377
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {<span class="stringliteral">"ICMP_UGT"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>},</div>
|
|
378
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {<span class="stringliteral">"ICMP_SGT"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>},</div>
|
|
379
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {<span class="stringliteral">"ICMP_UGE"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>},</div>
|
|
380
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {<span class="stringliteral">"ICMP_SGE"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>},</div>
|
|
381
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {<span class="stringliteral">"ICMP_ULT"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>},</div>
|
|
382
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {<span class="stringliteral">"ICMP_SLT"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>},</div>
|
|
383
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {<span class="stringliteral">"ICMP_ULE"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>},</div>
|
|
384
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {<span class="stringliteral">"ICMP_SLE"</span>, <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>},</div>
|
|
385
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  {<span class="stringliteral">"FNeg"</span>, <a class="code" href="classSVF_1_1UnaryOPStmt.html#ad06357c3d2abbd0eae12ba71d5206742ad6ff65c6ca19f968051e811b09745ad8">UnaryOPStmt::FNeg</a>},</div>
|
|
386
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  };</div>
|
|
387
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
|
388
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">auto</span> it = argStrToBinOp.find(argStr);</div>
|
|
389
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (it != argStrToBinOp.cend())</div>
|
|
390
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
391
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// offset</span></div>
|
|
392
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
|
|
393
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">while</span> (i < s.size() && isdigit(s[i]))</div>
|
|
394
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  i++;</div>
|
|
395
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (i == s.size())</div>
|
|
396
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">return</span> -5;</div>
|
|
397
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// illegal operand format</span></div>
|
|
398
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">return</span> -6;</div>
|
|
399
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> }</div>
|
|
400
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
|
|
401
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">// Get external function name, e.g "memcpy"</span></div>
|
|
402
|
-
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a"> 331</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">ExtAPI::get_name</a>(<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>)</div>
|
|
403
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> {</div>
|
|
404
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
405
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName();</div>
|
|
406
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
407
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  {</div>
|
|
408
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordtype">unsigned</span> start = funName.find(<span class="charliteral">'.'</span>);</div>
|
|
409
|
-
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordtype">unsigned</span> end = funName.substr(start + 1).find(<span class="charliteral">'.'</span>);</div>
|
|
410
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  funName = <span class="stringliteral">"llvm."</span> + funName.substr(start + 1, end);</div>
|
|
411
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div>
|
|
412
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">return</span> funName;</div>
|
|
413
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> }</div>
|
|
414
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  </div>
|
|
415
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment">// Get specifications of external functions in ExtAPI.json file</span></div>
|
|
416
|
-
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246"> 345</a></span> <a class="code" href="structcJSON.html">cJSON</a>* <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">ExtAPI::get_FunJson</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funName)</div>
|
|
417
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> {</div>
|
|
418
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  assert(<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a> && <span class="stringliteral">"JSON not loaded"</span>);</div>
|
|
419
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> cJSON_GetObjectItemCaseSensitive(<a class="code" href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">root</a>, funName.c_str());</div>
|
|
420
|
-
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> }</div>
|
|
421
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  </div>
|
|
422
|
-
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b"> 351</a></span> <a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html">ExtAPI::Operand</a> <a class="code" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b">ExtAPI::getBasicOperation</a>(<a class="code" href="structcJSON.html">cJSON</a>* obj)</div>
|
|
423
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> {</div>
|
|
424
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html">Operand</a> basicOp;</div>
|
|
425
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"AddrStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
426
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Addr);</div>
|
|
427
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"CopyStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
428
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Copy);</div>
|
|
429
|
-
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"LoadStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
430
|
-
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Load);</div>
|
|
431
|
-
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"StoreStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
432
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Store);</div>
|
|
433
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"GepStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
434
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Gep);</div>
|
|
435
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"ReturnStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
436
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Return);</div>
|
|
437
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"Rb_tree_ops"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
438
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Rb_tree_ops);</div>
|
|
439
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"memcpy_like"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
440
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Memcpy_like);</div>
|
|
441
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"memset_like"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
442
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">setType</a>(ExtAPI::OperationType::Memset_like);</div>
|
|
443
|
-
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">else</span></div>
|
|
444
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Unknown operation type"</span>);</div>
|
|
445
|
-
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
|
|
446
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="structcJSON.html">cJSON</a>* value = obj-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
447
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">while</span> (value)</div>
|
|
448
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div>
|
|
449
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"src"</span>) == 0)</div>
|
|
450
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#a5a81ebcd4b8633fce7fed83e7c92cc5d">setSrcValue</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
451
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"dst"</span>) == 0)</div>
|
|
452
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#a798ee2bb519bb26c71afbb3bfa524df5">setDstValue</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
453
|
-
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"offset"</span>) == 0 || strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"size"</span>) == 0)</div>
|
|
454
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  basicOp.<a class="code" href="classSVF_1_1ExtAPI_1_1Operand.html#ac1ba5035a89a7d4070d928b3c29826de">setOffsetOrSizeStr</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
455
|
-
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">else</span></div>
|
|
456
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Unknown operation value"</span>);</div>
|
|
457
|
-
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  value = value-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
458
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div>
|
|
459
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">return</span> basicOp;</div>
|
|
460
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> }</div>
|
|
461
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
|
|
462
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="comment">// Get all operations of an extern function</span></div>
|
|
463
|
-
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a8f7e26509cb873841e84fa7116774cbe"> 392</a></span> <a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html">ExtAPI::ExtFunctionOps</a> <a class="code" href="classSVF_1_1ExtAPI.html#a8f7e26509cb873841e84fa7116774cbe">ExtAPI::getExtFunctionOps</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* extFunction)</div>
|
|
464
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> {</div>
|
|
465
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html">ExtAPI::ExtFunctionOps</a> extFunctionOps;</div>
|
|
466
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  extFunctionOps.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#ad4dffa55424ae06f1d3fba4654a0a107">setExtFunName</a>(extFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
467
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">is_sameSignature</a>(extFunction))</div>
|
|
468
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span> extFunctionOps;</div>
|
|
469
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
|
|
470
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1ExtAPI.html#a3668c1a820ab11263e3cf646580e6e06">extFunToOps</a>.find(extFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
471
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1ExtAPI.html#a3668c1a820ab11263e3cf646580e6e06">extFunToOps</a>.end())</div>
|
|
472
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
473
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
|
474
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  extFunctionOps.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#ad4dffa55424ae06f1d3fba4654a0a107">setExtFunName</a>(extFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
475
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="structcJSON.html">cJSON</a>* <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(extFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
|
|
476
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> != <span class="keyword">nullptr</span>)</div>
|
|
477
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div>
|
|
478
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="structcJSON.html">cJSON</a>* obj = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
479
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// Get the first operation of the function</span></div>
|
|
480
|
-
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
481
|
-
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">while</span> (obj)</div>
|
|
482
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div>
|
|
483
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html">ExtOperation</a> operation;</div>
|
|
484
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a22c6e13481c090629afbd77b7cebd24c">cJSON_Object</a> || obj-><a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a57cffa126740a8efcdcb7bcef80e8897">cJSON_Array</a>)</div>
|
|
485
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  {</div>
|
|
486
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"CallStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
487
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
488
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  extFunctionOps.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#a8ae0261c6840d7fd168b7ca9492b573e">setCallStmtNum</a>(extFunctionOps.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#a3d284974561e173762d173d4ae466817">getCallStmtNum</a>() + 1);</div>
|
|
489
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7f91d7cc64fc7a201abd8f2a50bd8515">setCallOp</a>(<span class="keyword">true</span>);</div>
|
|
490
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="structcJSON.html">cJSON</a>* value = obj-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
491
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">while</span> (value)</div>
|
|
492
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  {</div>
|
|
493
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"callee_name"</span>) == 0)</div>
|
|
494
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ae02f2ece898788fba63be881f6933737">setCalleeName</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
495
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"callee_return"</span>) == 0)</div>
|
|
496
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7a30442030f29343602c7beb9ff7b86b">setCalleeReturn</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
497
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(value-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"callee_arguments"</span>) == 0)</div>
|
|
498
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a226fdc0e1a042362ddb4932985380bb9">setCalleeArguments</a>(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
499
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">else</span></div>
|
|
500
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#afbb3c0d51624c3cfce2ef0e70dff5dcd">getCalleeOperands</a>().push_back(<a class="code" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b">getBasicOperation</a>(value));</div>
|
|
501
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  value = value-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
502
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div>
|
|
503
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div>
|
|
504
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"CondStmt"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
505
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div>
|
|
506
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a0f01a1637d9aa0c75ef25df0566ecf7f">setConOp</a>(<span class="keyword">true</span>);</div>
|
|
507
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  obj = obj-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
508
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  assert(strcmp(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"Condition"</span>) == 0 && <span class="stringliteral">"Unknown operation type"</span>);</div>
|
|
509
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a0f01a1637d9aa0c75ef25df0566ecf7f">setConOp</a>(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
510
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
511
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  assert(strcmp(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"TrueBranch"</span>) == 0 && <span class="stringliteral">"Unknown operation type"</span>);</div>
|
|
512
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="structcJSON.html">cJSON</a>* value = obj-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
513
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">while</span> (value)</div>
|
|
514
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  {</div>
|
|
515
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ab705c6e7a1969a8276a96b7159bc294d">getTrueBranchOperands</a>().push_back(<a class="code" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b">getBasicOperation</a>(value));</div>
|
|
516
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  value = value-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
517
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div>
|
|
518
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
519
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  assert(strcmp(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <span class="stringliteral">"FalseBranch"</span>) == 0&& <span class="stringliteral">"Unknown operation type"</span>);</div>
|
|
520
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  value = obj-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
521
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">while</span> (value)</div>
|
|
522
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
523
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7a7729a39bec854fb5b5347397d9f04b">getFalseBranchOperands</a>().push_back(<a class="code" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b">getBasicOperation</a>(value));</div>
|
|
524
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  value = value-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
525
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div>
|
|
526
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div>
|
|
527
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">else</span></div>
|
|
528
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  operation.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ad855d88d7bb5ad8cc830bc16c68c8e0c">setBasicOp</a>(<a class="code" href="classSVF_1_1ExtAPI.html#af3356452592b0c37fa0cf29d21dcab6b">getBasicOperation</a>(obj));</div>
|
|
529
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div>
|
|
530
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
531
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  extFunctionOps.<a class="code" href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#a7922ddef3872e958d629b6d691b9cc4f">getOperations</a>().push_back(operation);</div>
|
|
532
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
533
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
534
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a3668c1a820ab11263e3cf646580e6e06">extFunToOps</a>[extFunction-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>()] = extFunctionOps;</div>
|
|
535
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">return</span> extFunctionOps;</div>
|
|
536
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> }</div>
|
|
537
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  </div>
|
|
538
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="comment">// Get arguments of the operation, e.g. ["A1R", "A0", "A2"]</span></div>
|
|
539
|
-
<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a906a3728bbcfb7a43ac0938ffcb3df23"> 468</a></span> std::vector<std::string> <a class="code" href="classSVF_1_1ExtAPI.html#a906a3728bbcfb7a43ac0938ffcb3df23">ExtAPI::get_opArgs</a>(<span class="keyword">const</span> <a class="code" href="structcJSON.html">cJSON</a>* value)</div>
|
|
540
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> {</div>
|
|
541
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  std::vector<std::string> args;</div>
|
|
542
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">while</span> (value)</div>
|
|
543
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  {</div>
|
|
544
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">if</span> (value-><a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#aa2cb4765308e2bbdf01988b2acdf92d9">cJSON_String</a>)</div>
|
|
545
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  args.push_back(value-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div>
|
|
546
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  value = value-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
547
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div>
|
|
548
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">return</span> args;</div>
|
|
549
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> }</div>
|
|
550
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  </div>
|
|
551
|
-
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#accdb0b7f3ae8d4028bd09f3d861aa2be"> 480</a></span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">ExtAPI::get_type</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funName)</div>
|
|
552
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> {</div>
|
|
553
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="structcJSON.html">cJSON</a>* <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div>
|
|
554
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <span class="stringliteral">""</span>;</div>
|
|
555
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> != <span class="keyword">nullptr</span>)</div>
|
|
556
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {</div>
|
|
557
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// Get the first operation of the function</span></div>
|
|
558
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="structcJSON.html">cJSON</a>* obj = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
559
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">if</span> (strcmp(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a>) == 0)</div>
|
|
560
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>;</div>
|
|
561
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">else</span></div>
|
|
562
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"The function operation format is illegal!"</span>);</div>
|
|
563
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
|
564
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  std::map<std::string, extType>::const_iterator it = <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.find(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
565
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.end())</div>
|
|
566
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>;</div>
|
|
567
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">else</span></div>
|
|
568
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
569
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> }</div>
|
|
570
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
|
|
571
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">// Get property of the operation, e.g. "EFT_A1R_A0R"</span></div>
|
|
572
|
-
<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41"> 501</a></span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">ExtAPI::get_type</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
573
|
-
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> {</div>
|
|
574
|
-
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">get_name</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>));</div>
|
|
575
|
-
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }</div>
|
|
576
|
-
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
|
|
577
|
-
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">// Get priority of he function, return value</span></div>
|
|
578
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment">// 0: Apply user-defined functions</span></div>
|
|
579
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment">// 1: Apply function specification in ExtAPI.json</span></div>
|
|
580
|
-
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258"> 509</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">ExtAPI::isOverwrittenAppFunction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a>* callee)</div>
|
|
581
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> {</div>
|
|
582
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = <a class="code" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">get_name</a>(callee);</div>
|
|
583
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">isOverwrittenAppFunction</a>(funName);</div>
|
|
584
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> }</div>
|
|
585
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
|
|
586
|
-
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a370b7d654a2f48226a848a5f1d7fb234"> 515</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">ExtAPI::isOverwrittenAppFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funName)</div>
|
|
587
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> {</div>
|
|
588
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="structcJSON.html">cJSON</a>* <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div>
|
|
589
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> != <span class="keyword">nullptr</span>)</div>
|
|
590
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
591
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="structcJSON.html">cJSON</a>* obj = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
592
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
593
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">if</span> (strcmp(obj-><a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a>) == 0)</div>
|
|
594
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">return</span> obj-><a class="code" href="structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">valueint</a>;</div>
|
|
595
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">else</span></div>
|
|
596
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"The function operation format is illegal!"</span>);</div>
|
|
597
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div>
|
|
598
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">return</span> 0;</div>
|
|
599
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div>
|
|
600
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  </div>
|
|
601
|
-
<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ab8d480022352929fe193ef21617c440c"> 530</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExtAPI.html#ab8d480022352929fe193ef21617c440c">ExtAPI::setOverWrittenAppFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcName, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> overwrite_app_function)</div>
|
|
602
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> {</div>
|
|
603
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">auto</span> <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funcName);</div>
|
|
604
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  assert(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> && <span class="stringliteral">"Do not set fields for ExtAPI funcs that don't exist!"</span>);</div>
|
|
605
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">auto</span> overwrite_obj = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
606
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  assert(overwrite_obj);</div>
|
|
607
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  assert(strcmp(overwrite_obj->string, <a class="code" href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a>) == 0);</div>
|
|
608
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="cJSON_8h.html#ae5b1335bfccc358f566bea6f7e4bfdc6">cJSON_SetIntValue</a>(overwrite_obj, overwrite_app_function);</div>
|
|
609
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> }</div>
|
|
610
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  </div>
|
|
611
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="comment">// Does (F) have a static var X (unavailable to us) that its return points to?</span></div>
|
|
612
|
-
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357"> 541</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">ExtAPI::has_static</a>(<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>)</div>
|
|
613
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> {</div>
|
|
614
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
615
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa94f514e925fdb422632840ca44343af0">EFT_STAT</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa515c2184a7461fc1788a514432a7ec22">EFT_STAT2</a>;</div>
|
|
616
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> }</div>
|
|
617
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  </div>
|
|
618
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment">// Assuming hasStatic(F), does (F) have a second static Y where X -> Y?</span></div>
|
|
619
|
-
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ad3eefa086aa514e4d245a975ea3d45b5"> 548</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ad3eefa086aa514e4d245a975ea3d45b5">ExtAPI::has_static2</a>(<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>)</div>
|
|
620
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> {</div>
|
|
621
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
622
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa515c2184a7461fc1788a514432a7ec22">EFT_STAT2</a>;</div>
|
|
623
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> }</div>
|
|
624
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
|
625
|
-
<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac5a4aa1c93ec7f37478fd8a399734cc0"> 554</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac5a4aa1c93ec7f37478fd8a399734cc0">ExtAPI::is_memset_or_memcpy</a>(<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>)</div>
|
|
626
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> {</div>
|
|
627
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
628
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caaa0cecd43037de38c00ec6017b03bbb3f">EFT_L_A0__A0R_A1</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa54aa3d7051aab7d65ee1154538bfbb48">EFT_L_A0__A0R_A1R</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caae7e7e0702f480304f4afefa96f6c5002">EFT_A1R_A0R</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa4ba81144ee1a70785fbf83ca5f0d4573">EFT_A3R_A1R_NS</a></div>
|
|
629
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caafedd2f66497ed9404b8b3cb1d16a3f0b">EFT_STD_RB_TREE_INSERT_AND_REBALANCE</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caaac3eaaf0865895ce144c035e429166be">EFT_L_A0__A1_A0</a>;</div>
|
|
630
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> }</div>
|
|
631
|
-
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  </div>
|
|
632
|
-
<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d"> 561</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">ExtAPI::is_alloc</a>(<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>)</div>
|
|
633
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> {</div>
|
|
634
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
635
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caac57ade96d1d18b9f2d4d36bc6928c5c4">EFT_ALLOC</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8782293305260b1500a09b473439d3b0">EFT_NOSTRUCT_ALLOC</a>;</div>
|
|
636
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> }</div>
|
|
637
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  </div>
|
|
638
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="comment">// Does (F) allocate a new object and assign it to one of its arguments?</span></div>
|
|
639
|
-
<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477"> 568</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">ExtAPI::is_arg_alloc</a>(<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>)</div>
|
|
640
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> {</div>
|
|
641
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
642
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa035cf8a39c192608ec0e91d48e479899">EFT_A0R_NEW</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa4353ad2b443e7f7ce2151869eed9c097">EFT_A1R_NEW</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa27b8dfa0742daa17c3e1a520d03dbd14">EFT_A2R_NEW</a> ||</div>
|
|
643
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caafe69efc20e29f95e0e333d1a462576a2">EFT_A4R_NEW</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8b59b6966952577361826d09b95b76be">EFT_A11R_NEW</a>;</div>
|
|
644
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> }</div>
|
|
645
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div>
|
|
646
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="comment">// Get the position of argument which holds the new object</span></div>
|
|
647
|
-
<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a"> 576</a></span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">ExtAPI::get_alloc_arg_pos</a>(<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>)</div>
|
|
648
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> {</div>
|
|
649
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
650
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">switch</span> (t)</div>
|
|
651
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div>
|
|
652
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa035cf8a39c192608ec0e91d48e479899">EFT_A0R_NEW</a>:</div>
|
|
653
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">return</span> 0;</div>
|
|
654
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa4353ad2b443e7f7ce2151869eed9c097">EFT_A1R_NEW</a>:</div>
|
|
655
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> 1;</div>
|
|
656
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa27b8dfa0742daa17c3e1a520d03dbd14">EFT_A2R_NEW</a>:</div>
|
|
657
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">return</span> 2;</div>
|
|
658
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caafe69efc20e29f95e0e333d1a462576a2">EFT_A4R_NEW</a>:</div>
|
|
659
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">return</span> 4;</div>
|
|
660
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8b59b6966952577361826d09b95b76be">EFT_A11R_NEW</a>:</div>
|
|
661
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">return</span> 11;</div>
|
|
662
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">default</span>:</div>
|
|
663
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Not an alloc call via argument."</span>);</div>
|
|
664
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">return</span> -1;</div>
|
|
665
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div>
|
|
666
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> }</div>
|
|
667
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  </div>
|
|
668
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="comment">// Does (F) allocate only non-struct objects?</span></div>
|
|
669
|
-
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a934e293bd4050cb1ab5c19e8ad391ebe"> 598</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a934e293bd4050cb1ab5c19e8ad391ebe">ExtAPI::no_struct_alloc</a>(<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>)</div>
|
|
670
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> {</div>
|
|
671
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
672
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8782293305260b1500a09b473439d3b0">EFT_NOSTRUCT_ALLOC</a>;</div>
|
|
673
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> }</div>
|
|
674
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
|
|
675
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment">// Does (F) not free/release any memory?</span></div>
|
|
676
|
-
<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#aeef27a358ba1815760c893bd2d2335b1"> 605</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#aeef27a358ba1815760c893bd2d2335b1">ExtAPI::is_dealloc</a>(<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>)</div>
|
|
677
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> {</div>
|
|
678
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
679
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa9b98279d1926e4ebfb237a43536c7b73">EFT_FREE</a>;</div>
|
|
680
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> }</div>
|
|
681
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  </div>
|
|
682
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="comment">// Does (F) not do anything with the known pointers?</span></div>
|
|
683
|
-
<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a82ebf71c5214f891f17e842e0b133b4f"> 612</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a82ebf71c5214f891f17e842e0b133b4f">ExtAPI::is_noop</a>(<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>)</div>
|
|
684
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> {</div>
|
|
685
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
686
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa87c4ba17ac3567a0673d6516995e06ef">EFT_NOOP</a> || t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa9b98279d1926e4ebfb237a43536c7b73">EFT_FREE</a>;</div>
|
|
687
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> }</div>
|
|
688
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  </div>
|
|
689
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment">// Does (F) reallocate a new object?</span></div>
|
|
690
|
-
<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4"> 619</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">ExtAPI::is_realloc</a>(<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>)</div>
|
|
691
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> {</div>
|
|
692
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
693
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> t == <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa1f23e7b8cdd103943f515e807bf36b1c">EFT_REALLOC</a>;</div>
|
|
694
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> }</div>
|
|
695
|
-
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
|
|
696
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment">// Does (F) have the same return type(pointer or nonpointer) and same number of</span></div>
|
|
697
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment">// arguments</span></div>
|
|
698
|
-
<div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b"> 627</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">ExtAPI::is_sameSignature</a>(<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>)</div>
|
|
699
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> {</div>
|
|
700
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="structcJSON.html">cJSON</a>* <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getName());</div>
|
|
701
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="comment">// If return type is pointer</span></div>
|
|
702
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordtype">bool</span> isPointer = <span class="keyword">false</span>;</div>
|
|
703
|
-
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="comment">// The number of arguments</span></div>
|
|
704
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> argNum = 0;</div>
|
|
705
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> != <span class="keyword">nullptr</span>)</div>
|
|
706
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  {</div>
|
|
707
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="comment">// Get the "return" attribute</span></div>
|
|
708
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <a class="code" href="structcJSON.html">cJSON</a>* obj = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>-><a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div>
|
|
709
|
-
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">if</span> (strlen(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>) == 0) <span class="comment">// e.g. "return": ""</span></div>
|
|
710
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"'return' should not be empty!"</span>);</div>
|
|
711
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="comment">// If "return": "..." includes "*", the return type of extern function is a pointer</span></div>
|
|
712
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">if</span> (strstr(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>, <span class="stringliteral">"*"</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
713
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  isPointer = <span class="keyword">true</span>;</div>
|
|
714
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="comment">// Get the "arguments" attribute</span></div>
|
|
715
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  obj = obj-><a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div>
|
|
716
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">if</span> (strlen(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>) == 0) <span class="comment">// e.g. "arguments": "",</span></div>
|
|
717
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"'arguments' should not be empty!"</span>);</div>
|
|
718
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="comment">// If "arguments": "()", the number of arguments is 0, otherwise, number >= 1;</span></div>
|
|
719
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">if</span> (strcmp(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>, <span class="stringliteral">"()"</span>) != 0)</div>
|
|
720
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div>
|
|
721
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  argNum++;</div>
|
|
722
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < strlen(obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>); i++)</div>
|
|
723
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>[i] == <span class="charliteral">','</span>) <span class="comment">// Calculate the number of arguments based on the number of ","</span></div>
|
|
724
|
-
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  argNum++;</div>
|
|
725
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  }</div>
|
|
726
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div>
|
|
727
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
|
|
728
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">if</span> ( !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isVarArg() && <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->arg_size() != argNum) <span class="comment">// The number of arguments is different</span></div>
|
|
729
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
730
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="comment">// Is the return type the same?</span></div>
|
|
731
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getReturnType()->isPointerTy() == isPointer;</div>
|
|
732
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> }</div>
|
|
733
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  </div>
|
|
734
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment">// Should (F) be considered "external" (either not defined in the program</span></div>
|
|
735
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="comment">// or a user-defined version of a known alloc or no-op)?</span></div>
|
|
736
|
-
<div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2"> 665</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">ExtAPI::is_ext</a>(<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>)</div>
|
|
737
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> {</div>
|
|
738
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
739
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordtype">bool</span> res;</div>
|
|
740
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
741
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  {</div>
|
|
742
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  res = 1;</div>
|
|
743
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  }</div>
|
|
744
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">else</span></div>
|
|
745
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  {</div>
|
|
746
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
747
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">if</span> (t != <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>)</div>
|
|
748
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  {</div>
|
|
749
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> overwrittenAppFunction = <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">isOverwrittenAppFunction</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
750
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">is_sameSignature</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>))</div>
|
|
751
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  res = 0;</div>
|
|
752
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="comment">// overwrittenAppFunction = 1: Execute function specification in</span></div>
|
|
753
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="comment">// ExtAPI.json F is considered as external function</span></div>
|
|
754
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (overwrittenAppFunction == 1)</div>
|
|
755
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  res = 1;</div>
|
|
756
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="comment">// overwrittenAppFunction = 0: Execute user-defined functions</span></div>
|
|
757
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="comment">// F is not considered as external function</span></div>
|
|
758
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">else</span></div>
|
|
759
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  res = 0;</div>
|
|
760
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div>
|
|
761
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">else</span></div>
|
|
762
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  res = 0;</div>
|
|
763
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div>
|
|
764
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">return</span> res;</div>
|
|
765
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> }</div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// Should (F) be considered "external" (either not defined in the program</span></div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// or a user-defined version of a known alloc or no-op)?</span></div>
|
|
198
|
+
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2"> 127</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">ExtAPI::is_ext</a>(<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>)</div>
|
|
199
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div>
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
201
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span></div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"SVF"</span>);</div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div>
|
|
766
207
|
</div><!-- fragment --></div><!-- contents -->
|
|
767
|
-
<div class="ttc" id="
|
|
768
|
-
<div class="ttc" id="
|
|
769
|
-
<div class="ttc" id="
|
|
770
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caaac3eaaf0865895ce144c035e429166be"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caaac3eaaf0865895ce144c035e429166be">SVF::ExtAPI::EFT_L_A0__A1_A0</a></div><div class="ttdeci">@ EFT_L_A0__A1_A0</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00159">ExtAPI.h:159</a></div></div>
|
|
771
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa8782293305260b1500a09b473439d3b0"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8782293305260b1500a09b473439d3b0">SVF::ExtAPI::EFT_NOSTRUCT_ALLOC</a></div><div class="ttdeci">@ EFT_NOSTRUCT_ALLOC</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00140">ExtAPI.h:140</a></div></div>
|
|
772
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00218">ExtAPI.h:218</a></div></div>
|
|
773
|
-
<div class="ttc" id="acJSON_8h_html_ae5b1335bfccc358f566bea6f7e4bfdc6"><div class="ttname"><a href="cJSON_8h.html#ae5b1335bfccc358f566bea6f7e4bfdc6">cJSON_SetIntValue</a></div><div class="ttdeci">#define cJSON_SetIntValue(object, number)</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00275">cJSON.h:275</a></div></div>
|
|
774
|
-
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|
|
775
|
-
<div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00044">ExtAPI.cpp:44</a></div></div>
|
|
776
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa1f23e7b8cdd103943f515e807bf36b1c"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa1f23e7b8cdd103943f515e807bf36b1c">SVF::ExtAPI::EFT_REALLOC</a></div><div class="ttdeci">@ EFT_REALLOC</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00137">ExtAPI.h:137</a></div></div>
|
|
777
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_abe3e0e2500532acfc01cee7e2ce1cd90"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">SVF::ExtAPI::destory</a></div><div class="ttdeci">static void destory()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00174">ExtAPI.cpp:174</a></div></div>
|
|
778
|
-
<div class="ttc" id="acJSON_8h_html_a22c6e13481c090629afbd77b7cebd24c"><div class="ttname"><a href="cJSON_8h.html#a22c6e13481c090629afbd77b7cebd24c">cJSON_Object</a></div><div class="ttdeci">#define cJSON_Object</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00096">cJSON.h:96</a></div></div>
|
|
779
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_afbb3c0d51624c3cfce2ef0e70dff5dcd"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#afbb3c0d51624c3cfce2ef0e70dff5dcd">SVF::ExtAPI::ExtOperation::getCalleeOperands</a></div><div class="ttdeci">std::vector< Operand > & getCalleeOperands()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00386">ExtAPI.h:386</a></div></div>
|
|
780
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a934e293bd4050cb1ab5c19e8ad391ebe"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a934e293bd4050cb1ab5c19e8ad391ebe">SVF::ExtAPI::no_struct_alloc</a></div><div class="ttdeci">bool no_struct_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00598">ExtAPI.cpp:598</a></div></div>
|
|
781
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1Operand_html"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operand.html">SVF::ExtAPI::Operand</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00242">ExtAPI.h:242</a></div></div>
|
|
782
|
-
<div class="ttc" id="astructcJSON_html_aa6b47e9a4b0e0a26f519b1a2b6739983"><div class="ttname"><a href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">cJSON::string</a></div><div class="ttdeci">char * string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00122">cJSON.h:122</a></div></div>
|
|
783
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00665">ExtAPI.cpp:665</a></div></div>
|
|
784
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">SVF::CmpStmt::ICMP_ULT</a></div><div class="ttdeci">@ ICMP_ULT</div><div class="ttdoc">unsigned less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00901">SVFStatements.h:901</a></div></div>
|
|
208
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00048">ExtAPI.h:48</a></div></div>
|
|
209
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_abe3e0e2500532acfc01cee7e2ce1cd90"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">SVF::ExtAPI::destory</a></div><div class="ttdeci">static void destory()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00045">ExtAPI.cpp:45</a></div></div>
|
|
210
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00127">ExtAPI.cpp:127</a></div></div>
|
|
785
211
|
<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>
|
|
786
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
|
|
787
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">SVF::ExtAPI::EFT_NULL</a></div><div class="ttdeci">@ EFT_NULL</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00174">ExtAPI.h:174</a></div></div>
|
|
788
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_af9462a56a96fcbf93252b9b51166987d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#af9462a56a96fcbf93252b9b51166987d">SVF::ExtAPI::getArgPos</a></div><div class="ttdeci">u32_t getArgPos(const std::string &s)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00246">ExtAPI.cpp:246</a></div></div>
|
|
789
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ad3eefa086aa514e4d245a975ea3d45b5"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ad3eefa086aa514e4d245a975ea3d45b5">SVF::ExtAPI::has_static2</a></div><div class="ttdeci">bool has_static2(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00548">ExtAPI.cpp:548</a></div></div>
|
|
790
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00964">SVFStatements.h:964</a></div></div>
|
|
791
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa27b8dfa0742daa17c3e1a520d03dbd14"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa27b8dfa0742daa17c3e1a520d03dbd14">SVF::ExtAPI::EFT_A2R_NEW</a></div><div class="ttdeci">@ EFT_A2R_NEW</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00162">ExtAPI.h:162</a></div></div>
|
|
792
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00900">SVFStatements.h:900</a></div></div>
|
|
793
212
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab793be4b6f8f0a025599e76f5df2a4eb"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">SVF::ExtAPI::ExtAPI</a></div><div class="ttdeci">ExtAPI()=default</div></div>
|
|
794
|
-
<div class="ttc" id="
|
|
795
|
-
<div class="ttc" id="
|
|
796
|
-
<div class="ttc" id="
|
|
797
|
-
<div class="ttc" id="
|
|
798
|
-
<div class="ttc" id="
|
|
799
|
-
<div class="ttc" id="
|
|
800
|
-
<div class="ttc" id="
|
|
801
|
-
<div class="ttc" id="acJSON_8cpp_html_afde5c619f31577b3d821b56b23953c85"><div class="ttname"><a href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a></div><div class="ttdeci">cJSON_Delete(null)</div></div>
|
|
802
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caafedd2f66497ed9404b8b3cb1d16a3f0b"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caafedd2f66497ed9404b8b3cb1d16a3f0b">SVF::ExtAPI::EFT_STD_RB_TREE_INSERT_AND_REBALANCE</a></div><div class="ttdeci">@ EFT_STD_RB_TREE_INSERT_AND_REBALANCE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00165">ExtAPI.h:165</a></div></div>
|
|
803
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a8f7e26509cb873841e84fa7116774cbe"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a8f7e26509cb873841e84fa7116774cbe">SVF::ExtAPI::getExtFunctionOps</a></div><div class="ttdeci">ExtFunctionOps getExtFunctionOps(const SVFFunction *extFunction)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00392">ExtAPI.cpp:392</a></div></div>
|
|
804
|
-
<div class="ttc" id="aSVFVariables_8h_html"><div class="ttname"><a href="SVFVariables_8h.html">SVFVariables.h</a></div></div>
|
|
805
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
|
|
806
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
|
|
807
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtFunctionOps_html"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html">SVF::ExtAPI::ExtFunctionOps</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00407">ExtAPI.h:407</a></div></div>
|
|
808
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_ad855d88d7bb5ad8cc830bc16c68c8e0c"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ad855d88d7bb5ad8cc830bc16c68c8e0c">SVF::ExtAPI::ExtOperation::setBasicOp</a></div><div class="ttdeci">void setBasicOp(Operand op)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00334">ExtAPI.h:334</a></div></div>
|
|
809
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a112b27cba6b2be4f4c1f452d5ee627b4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a112b27cba6b2be4f4c1f452d5ee627b4">SVF::ExtAPI::add_entry</a></div><div class="ttdeci">void add_entry(const char *funName, const char *returnType, std::vector< const char * > argTypes, extType type, bool overwrite_app_function)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00188">ExtAPI.cpp:188</a></div></div>
|
|
810
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_a226fdc0e1a042362ddb4932985380bb9"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a226fdc0e1a042362ddb4932985380bb9">SVF::ExtAPI::ExtOperation::setCalleeArguments</a></div><div class="ttdeci">void setCalleeArguments(const std::string &args)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00382">ExtAPI.h:382</a></div></div>
|
|
811
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html">SVF::ExtAPI::ExtOperation</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00311">ExtAPI.h:311</a></div></div>
|
|
812
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_a7a7729a39bec854fb5b5347397d9f04b"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7a7729a39bec854fb5b5347397d9f04b">SVF::ExtAPI::ExtOperation::getFalseBranchOperands</a></div><div class="ttdeci">std::vector< Operand > & getFalseBranchOperands()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00354">ExtAPI.h:354</a></div></div>
|
|
813
|
-
<div class="ttc" id="acJSON_8h_html"><div class="ttname"><a href="cJSON_8h.html">cJSON.h</a></div></div>
|
|
814
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_a7f91d7cc64fc7a201abd8f2a50bd8515"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7f91d7cc64fc7a201abd8f2a50bd8515">SVF::ExtAPI::ExtOperation::setCallOp</a></div><div class="ttdeci">void setCallOp(bool isCall)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00318">ExtAPI.h:318</a></div></div>
|
|
815
|
-
<div class="ttc" id="acJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
|
|
816
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00903">SVFStatements.h:903</a></div></div>
|
|
817
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac5a4aa1c93ec7f37478fd8a399734cc0"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac5a4aa1c93ec7f37478fd8a399734cc0">SVF::ExtAPI::is_memset_or_memcpy</a></div><div class="ttdeci">bool is_memset_or_memcpy(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00554">ExtAPI.cpp:554</a></div></div>
|
|
818
|
-
<div class="ttc" id="aExtAPI_8h_html_a6dec9d5ce6e777757e97065129d96874"><div class="ttname"><a href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a></div><div class="ttdeci">#define JSON_OPT_OVERWRITE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00040">ExtAPI.h:40</a></div></div>
|
|
819
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
|
|
820
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00576">ExtAPI.cpp:576</a></div></div>
|
|
821
|
-
<div class="ttc" id="astructcJSON_html_a369cea49494eb5d4409d532a731a0fbf"><div class="ttname"><a href="structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">cJSON::valueint</a></div><div class="ttdeci">int valueint</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00117">cJSON.h:117</a></div></div>
|
|
822
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199ca"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">SVF::ExtAPI::extType</a></div><div class="ttdeci">extType</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00133">ExtAPI.h:133</a></div></div>
|
|
823
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_a0f01a1637d9aa0c75ef25df0566ecf7f"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a0f01a1637d9aa0c75ef25df0566ecf7f">SVF::ExtAPI::ExtOperation::setConOp</a></div><div class="ttdeci">void setConOp(bool isCon)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00326">ExtAPI.h:326</a></div></div>
|
|
824
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a02380d22fd6021ebce1e54723d695c99"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI(const std::string &="")</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00125">ExtAPI.cpp:125</a></div></div>
|
|
825
|
-
<div class="ttc" id="acJSON_8h_html_aa2cb4765308e2bbdf01988b2acdf92d9"><div class="ttname"><a href="cJSON_8h.html#aa2cb4765308e2bbdf01988b2acdf92d9">cJSON_String</a></div><div class="ttdeci">#define cJSON_String</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00094">cJSON.h:94</a></div></div>
|
|
826
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a82ebf71c5214f891f17e842e0b133b4f"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a82ebf71c5214f891f17e842e0b133b4f">SVF::ExtAPI::is_noop</a></div><div class="ttdeci">bool is_noop(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00612">ExtAPI.cpp:612</a></div></div>
|
|
827
|
-
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
828
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00561">ExtAPI.cpp:561</a></div></div>
|
|
829
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caaa0cecd43037de38c00ec6017b03bbb3f"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caaa0cecd43037de38c00ec6017b03bbb3f">SVF::ExtAPI::EFT_L_A0__A0R_A1</a></div><div class="ttdeci">@ EFT_L_A0__A0R_A1</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00147">ExtAPI.h:147</a></div></div>
|
|
830
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a411a034f872afcf62ce5456e408ccf41"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">SVF::ExtAPI::get_type</a></div><div class="ttdeci">extType get_type(const SVF::SVFFunction *callee)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00501">ExtAPI.cpp:501</a></div></div>
|
|
831
|
-
<div class="ttc" id="acJSON_8h_html_a57cffa126740a8efcdcb7bcef80e8897"><div class="ttname"><a href="cJSON_8h.html#a57cffa126740a8efcdcb7bcef80e8897">cJSON_Array</a></div><div class="ttdeci">#define cJSON_Array</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00095">cJSON.h:95</a></div></div>
|
|
832
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caafe69efc20e29f95e0e333d1a462576a2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caafe69efc20e29f95e0e333d1a462576a2">SVF::ExtAPI::EFT_A4R_NEW</a></div><div class="ttdeci">@ EFT_A4R_NEW</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00163">ExtAPI.h:163</a></div></div>
|
|
833
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a906a3728bbcfb7a43ac0938ffcb3df23"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a906a3728bbcfb7a43ac0938ffcb3df23">SVF::ExtAPI::get_opArgs</a></div><div class="ttdeci">std::vector< std::string > get_opArgs(const cJSON *value)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00468">ExtAPI.cpp:468</a></div></div>
|
|
834
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_ae02f2ece898788fba63be881f6933737"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ae02f2ece898788fba63be881f6933737">SVF::ExtAPI::ExtOperation::setCalleeName</a></div><div class="ttdeci">void setCalleeName(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00366">ExtAPI.h:366</a></div></div>
|
|
213
|
+
<div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
|
|
214
|
+
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01191">extapi.c:1191</a></div></div>
|
|
215
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00102">ExtAPI.cpp:102</a></div></div>
|
|
216
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a02380d22fd6021ebce1e54723d695c99"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI(const std::string &="")</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00036">ExtAPI.cpp:36</a></div></div>
|
|
217
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a9f6e5cd617ab57ef9da0bab6c3c9cdc8"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">SVF::ExtAPI::is_memset</a></div><div class="ttdeci">bool is_memset(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00085">ExtAPI.cpp:85</a></div></div>
|
|
218
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00090">ExtAPI.cpp:90</a></div></div>
|
|
219
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a067bd6dbaf74a028d546fa56b095791b"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">SVF::SVFFunction::getAnnotations</a></div><div class="ttdeci">const std::vector< std::string > & getAnnotations() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00434">SVFValue.h:434</a></div></div>
|
|
835
220
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
836
|
-
<div class="ttc" id="
|
|
837
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa515c2184a7461fc1788a514432a7ec22"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa515c2184a7461fc1788a514432a7ec22">SVF::ExtAPI::EFT_STAT2</a></div><div class="ttdeci">@ EFT_STAT2</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00142">ExtAPI.h:142</a></div></div>
|
|
838
|
-
<div class="ttc" id="astructcJSON_html_ade862b880379b5e2a591f7326401fa8d"><div class="ttname"><a href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">cJSON::next</a></div><div class="ttdeci">struct cJSON * next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00106">cJSON.h:106</a></div></div>
|
|
839
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a95ac45d2367b3d3124d5d98958e74cc5"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">SVF::ExtAPI::type_pair</a></div><div class="ttdeci">std::map< std::string, extType > type_pair</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00179">ExtAPI.h:179</a></div></div>
|
|
221
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00064">ExtAPI.cpp:64</a></div></div>
|
|
840
222
|
<div class="ttc" id="aExtAPI_8h_html"><div class="ttname"><a href="ExtAPI_8h.html">ExtAPI.h</a></div></div>
|
|
841
|
-
<div class="ttc" id="
|
|
842
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ae20ea24cce02de87d89a2d0b773a2357"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">SVF::ExtAPI::has_static</a></div><div class="ttdeci">bool has_static(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00541">ExtAPI.cpp:541</a></div></div>
|
|
843
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtFunctionOps_html_a3d284974561e173762d173d4ae466817"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#a3d284974561e173762d173d4ae466817">SVF::ExtAPI::ExtFunctionOps::getCallStmtNum</a></div><div class="ttdeci">u32_t getCallStmtNum()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00428">ExtAPI.h:428</a></div></div>
|
|
844
|
-
<div class="ttc" id="astructcJSON_html_a401b274c2da358dac5c23ab8b2c71f85"><div class="ttname"><a href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">cJSON::child</a></div><div class="ttdeci">struct cJSON * child</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00109">cJSON.h:109</a></div></div>
|
|
223
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ae20ea24cce02de87d89a2d0b773a2357"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">SVF::ExtAPI::has_static</a></div><div class="ttdeci">bool has_static(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00075">ExtAPI.cpp:75</a></div></div>
|
|
845
224
|
<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>
|
|
846
|
-
<div class="ttc" id="
|
|
847
|
-
<div class="ttc" id="
|
|
848
|
-
<div class="ttc" id="
|
|
849
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa9b98279d1926e4ebfb237a43536c7b73"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa9b98279d1926e4ebfb237a43536c7b73">SVF::ExtAPI::EFT_FREE</a></div><div class="ttdeci">@ EFT_FREE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00138">ExtAPI.h:138</a></div></div>
|
|
850
|
-
<div class="ttc" id="aExtAPI_8cpp_html_a82e0f4095086de7f384a1f55838b5d28"><div class="ttname"><a href="ExtAPI_8cpp.html#a82e0f4095086de7f384a1f55838b5d28">getJsonFile</a></div><div class="ttdeci">static std::string getJsonFile(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00068">ExtAPI.cpp:68</a></div></div>
|
|
851
|
-
<div class="ttc" id="aExtAPI_8h_html_ad9bef4304f41728bb3edf259c6b67668"><div class="ttname"><a href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a></div><div class="ttdeci">#define EXTAPI_JSON_PATH</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00039">ExtAPI.h:39</a></div></div>
|
|
852
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab8d480022352929fe193ef21617c440c"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab8d480022352929fe193ef21617c440c">SVF::ExtAPI::setOverWrittenAppFunction</a></div><div class="ttdeci">void setOverWrittenAppFunction(const std::string &funcName, u32_t overwrite_app_function)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00530">ExtAPI.cpp:530</a></div></div>
|
|
853
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa8b59b6966952577361826d09b95b76be"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa8b59b6966952577361826d09b95b76be">SVF::ExtAPI::EFT_A11R_NEW</a></div><div class="ttdeci">@ EFT_A11R_NEW</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00164">ExtAPI.h:164</a></div></div>
|
|
854
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1Operand_html_a5a81ebcd4b8633fce7fed83e7c92cc5d"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operand.html#a5a81ebcd4b8633fce7fed83e7c92cc5d">SVF::ExtAPI::Operand::setSrcValue</a></div><div class="ttdeci">void setSrcValue(const std::string &value)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00257">ExtAPI.h:257</a></div></div>
|
|
855
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">SVF::CmpStmt::ICMP_EQ</a></div><div class="ttdeci">@ ICMP_EQ</div><div class="ttdoc">equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
|
|
856
|
-
<div class="ttc" id="astructcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
|
|
857
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa4353ad2b443e7f7ce2151869eed9c097"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa4353ad2b443e7f7ce2151869eed9c097">SVF::ExtAPI::EFT_A1R_NEW</a></div><div class="ttdeci">@ EFT_A1R_NEW</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00161">ExtAPI.h:161</a></div></div>
|
|
858
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa94f514e925fdb422632840ca44343af0"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa94f514e925fdb422632840ca44343af0">SVF::ExtAPI::EFT_STAT</a></div><div class="ttdeci">@ EFT_STAT</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00141">ExtAPI.h:141</a></div></div>
|
|
859
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html"><div class="ttname"><a href="classSVF_1_1ExtAPI.html">SVF::ExtAPI</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00127">ExtAPI.h:127</a></div></div>
|
|
860
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1Operand_html_afb4a1cdc9aa9836ed3bd2384cf119d05"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operand.html#afb4a1cdc9aa9836ed3bd2384cf119d05">SVF::ExtAPI::Operand::setType</a></div><div class="ttdeci">void setType(OperationType type)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00249">ExtAPI.h:249</a></div></div>
|
|
861
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00568">ExtAPI.cpp:568</a></div></div>
|
|
862
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00345">ExtAPI.cpp:345</a></div></div>
|
|
225
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html"><div class="ttname"><a href="classSVF_1_1ExtAPI.html">SVF::ExtAPI</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00044">ExtAPI.h:44</a></div></div>
|
|
226
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00096">ExtAPI.cpp:96</a></div></div>
|
|
227
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00054">ExtAPI.cpp:54</a></div></div>
|
|
863
228
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
|
|
864
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtFunctionOps_html_a8ae0261c6840d7fd168b7ca9492b573e"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtFunctionOps.html#a8ae0261c6840d7fd168b7ca9492b573e">SVF::ExtAPI::ExtFunctionOps::setCallStmtNum</a></div><div class="ttdeci">void setCallStmtNum(u32_t num)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00432">ExtAPI.h:432</a></div></div>
|
|
865
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_a7a30442030f29343602c7beb9ff7b86b"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#a7a30442030f29343602c7beb9ff7b86b">SVF::ExtAPI::ExtOperation::setCalleeReturn</a></div><div class="ttdeci">void setCalleeReturn(const std::string &ret)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00374">ExtAPI.h:374</a></div></div>
|
|
866
|
-
<div class="ttc" id="aExtAPI_8cpp_html_a3957468a4d85cef02d8be1f82bcdfc69"><div class="ttname"><a href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a></div><div class="ttdeci">static cJSON * parseJson(const std::string &path, off_t fileSize)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00092">ExtAPI.cpp:92</a></div></div>
|
|
867
|
-
<div class="ttc" id="aExtAPI_8h_html_a8af07ec3fec2ac9636dfb81bb7a8961e"><div class="ttname"><a href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a></div><div class="ttdeci">#define JSON_OPT_FUNCTIONTYPE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
|
|
868
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">SVF::BinaryOPStmt::SRem</a></div><div class="ttdeci">@ SRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00972">SVFStatements.h:972</a></div></div>
|
|
869
|
-
<div class="ttc" id="astructcJSON_html_ab13084c574681593b12f6e0a3db0dcfc"><div class="ttname"><a href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">cJSON::type</a></div><div class="ttdeci">int type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00112">cJSON.h:112</a></div></div>
|
|
870
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">SVF::CmpStmt::ICMP_NE</a></div><div class="ttdeci">@ ICMP_NE</div><div class="ttdoc">not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00898">SVFStatements.h:898</a></div></div>
|
|
871
|
-
<div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
872
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a2531eb3ef37af4aff095db0cef438934"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a2531eb3ef37af4aff095db0cef438934">SVF::ExtAPI::getNodeIDType</a></div><div class="ttdeci">s32_t getNodeIDType(const std::string &s)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00268">ExtAPI.cpp:268</a></div></div>
|
|
873
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a3668c1a820ab11263e3cf646580e6e06"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a3668c1a820ab11263e3cf646580e6e06">SVF::ExtAPI::extFunToOps</a></div><div class="ttdeci">std::map< std::string, ExtFunctionOps > extFunToOps</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00444">ExtAPI.h:444</a></div></div>
|
|
874
|
-
<div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
875
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_aeef27a358ba1815760c893bd2d2335b1"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aeef27a358ba1815760c893bd2d2335b1">SVF::ExtAPI::is_dealloc</a></div><div class="ttdeci">bool is_dealloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00605">ExtAPI.cpp:605</a></div></div>
|
|
876
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00969">SVFStatements.h:969</a></div></div>
|
|
877
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5e8b816a3eb894f6b09403852df0d01b"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">SVF::ExtAPI::is_sameSignature</a></div><div class="ttdeci">bool is_sameSignature(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00627">ExtAPI.cpp:627</a></div></div>
|
|
878
229
|
<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>
|
|
879
|
-
<div class="ttc" id="
|
|
880
|
-
<div class="ttc" id="
|
|
881
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00619">ExtAPI.cpp:619</a></div></div>
|
|
882
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">SVF::CmpStmt::ICMP_SGE</a></div><div class="ttdeci">@ ICMP_SGE</div><div class="ttdoc">signed greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00904">SVFStatements.h:904</a></div></div>
|
|
883
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1Operand_html_a798ee2bb519bb26c71afbb3bfa524df5"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operand.html#a798ee2bb519bb26c71afbb3bfa524df5">SVF::ExtAPI::Operand::setDstValue</a></div><div class="ttdeci">void setDstValue(const std::string &value)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00265">ExtAPI.h:265</a></div></div>
|
|
884
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa4ba81144ee1a70785fbf83ca5f0d4573"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa4ba81144ee1a70785fbf83ca5f0d4573">SVF::ExtAPI::EFT_A3R_A1R_NS</a></div><div class="ttdeci">@ EFT_A3R_A1R_NS</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00154">ExtAPI.h:154</a></div></div>
|
|
885
|
-
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
886
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa87c4ba17ac3567a0673d6516995e06ef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa87c4ba17ac3567a0673d6516995e06ef">SVF::ExtAPI::EFT_NOOP</a></div><div class="ttdeci">@ EFT_NOOP</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00135">ExtAPI.h:135</a></div></div>
|
|
887
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caae7e7e0702f480304f4afefa96f6c5002"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caae7e7e0702f480304f4afefa96f6c5002">SVF::ExtAPI::EFT_A1R_A0R</a></div><div class="ttdeci">@ EFT_A1R_A0R</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00153">ExtAPI.h:153</a></div></div>
|
|
888
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00899">SVFStatements.h:899</a></div></div>
|
|
889
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00977">SVFStatements.h:977</a></div></div>
|
|
890
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1Operand_html_ac1ba5035a89a7d4070d928b3c29826de"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operand.html#ac1ba5035a89a7d4070d928b3c29826de">SVF::ExtAPI::Operand::setOffsetOrSizeStr</a></div><div class="ttdeci">void setOffsetOrSizeStr(const std::string &str)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00289">ExtAPI.h:289</a></div></div>
|
|
891
|
-
<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>
|
|
892
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac3e34227968d6a2835d63b1052da3c1a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">SVF::ExtAPI::get_name</a></div><div class="ttdeci">std::string get_name(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00331">ExtAPI.cpp:331</a></div></div>
|
|
893
|
-
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
894
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00962">SVFStatements.h:962</a></div></div>
|
|
895
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a835fda8fb934d1cd040d1b3fb2dd0270"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a835fda8fb934d1cd040d1b3fb2dd0270">SVF::ExtAPI::root</a></div><div class="ttdeci">static cJSON * root</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00221">ExtAPI.h:221</a></div></div>
|
|
896
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_1_1ExtOperation_html_ab705c6e7a1969a8276a96b7159bc294d"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1ExtOperation.html#ab705c6e7a1969a8276a96b7159bc294d">SVF::ExtAPI::ExtOperation::getTrueBranchOperands</a></div><div class="ttdeci">std::vector< Operand > & getTrueBranchOperands()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00346">ExtAPI.h:346</a></div></div>
|
|
230
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00119">ExtAPI.cpp:119</a></div></div>
|
|
231
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_aadc8f2e0ff777e3f611a7d741def0742"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">SVF::ExtAPI::is_memcpy</a></div><div class="ttdeci">bool is_memcpy(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00080">ExtAPI.cpp:80</a></div></div>
|
|
897
232
|
<!-- start footer part -->
|
|
898
233
|
<hr class="footer"/><address class="footer"><small>
|
|
899
234
|
Generated by  <a href="http://www.doxygen.org/index.html">
|