svf-tools 1.0.897 → 1.0.899
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AbstractExecution_8cpp.html +1 -1
- package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +1638 -1659
- package/SVF-doxygen/html/AbstractExecution_8h_source.html +49 -49
- package/SVF-doxygen/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AccessPath_8h_source.html +2 -2
- package/SVF-doxygen/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/AndersenPWC_8h_source.html +4 -4
- package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +3 -3
- package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Andersen_8cpp_source.html +5 -5
- package/SVF-doxygen/html/Andersen_8h_source.html +3 -3
- package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +4 -4
- package/SVF-doxygen/html/BoundedZ3Expr_8h_source.html +400 -380
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +29 -28
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CDG_8h_source.html +2 -2
- package/SVF-doxygen/html/CFGNormalizer_8cpp_source.html +3 -3
- package/SVF-doxygen/html/CFGNormalizer_8h_source.html +3 -3
- package/SVF-doxygen/html/CFGrammar_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFGrammar_8h_source.html +3 -3
- package/SVF-doxygen/html/CFLAlias_8h_source.html +2 -2
- package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/CFLSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/CSC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/ConditionalPT_8h_source.html +3 -3
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +6 -6
- package/SVF-doxygen/html/ConsExeState_8h_source.html +6 -6
- package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/ConsG_8cpp_source.html +14 -14
- package/SVF-doxygen/html/ConsG_8h_source.html +4 -4
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/ContextDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/CoreBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/CppUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CppUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/DDAPass_8cpp_source.html +2 -2
- package/SVF-doxygen/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/DPItem_8h_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FSMPTA_8h_source.html +2 -2
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/GeneralType_8h.html +8 -0
- package/SVF-doxygen/html/GeneralType_8h_source.html +110 -102
- package/SVF-doxygen/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/GrammarBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/IntervalExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/IntervalValue_8h_source.html +863 -802
- package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +335 -316
- package/SVF-doxygen/html/LLVMModule_8h_source.html +11 -11
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LockResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/MHP_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +4 -4
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/MemPartition_8h_source.html +2 -2
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +4 -4
- package/SVF-doxygen/html/MemRegion_8h_source.html +5 -5
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/MemSSA_8h_source.html +5 -5
- package/SVF-doxygen/html/MutablePointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/NodeIDAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/NodeIDAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/NumericLiteral_8h_source.html +465 -424
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ObjTypeInference_8h_source.html +2 -2
- package/SVF-doxygen/html/Options_8cpp_source.html +10 -1
- package/SVF-doxygen/html/Options_8h_source.html +8 -4
- package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +195 -137
- package/SVF-doxygen/html/PAGBuilderFromFile_8h_source.html +3 -3
- package/SVF-doxygen/html/PCG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PTACallGraph_8h_source.html +4 -4
- package/SVF-doxygen/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PersistentPointsToCache_8h_source.html +2 -2
- package/SVF-doxygen/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +3 -3
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ProgSlice_8h_source.html +2 -2
- package/SVF-doxygen/html/RelExeState_8cpp_source.html +5 -5
- package/SVF-doxygen/html/RelExeState_8h_source.html +6 -6
- package/SVF-doxygen/html/RelationSolver_8cpp.html +2 -0
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +386 -378
- package/SVF-doxygen/html/RelationSolver_8h_source.html +11 -11
- package/SVF-doxygen/html/SCC_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFBugReport_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +1937 -1934
- package/SVF-doxygen/html/SVFFileSystem_8h.html +1 -1
- package/SVF-doxygen/html/SVFFileSystem_8h_source.html +59 -59
- package/SVF-doxygen/html/SVFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +60 -60
- package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +9 -9
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +1101 -886
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +173 -154
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +35 -35
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +17 -17
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +172 -121
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +24 -22
- package/SVF-doxygen/html/SVFIR_8h_source.html +55 -53
- package/SVF-doxygen/html/SVFLoop_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/SVFStatements_8h_source.html +979 -955
- package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFUtil_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +8 -8
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/SingleAbsValue_8h_source.html +6 -6
- package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Steensgaard_8h_source.html +4 -4
- package/SVF-doxygen/html/SymState_8h_source.html +2 -2
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +4 -4
- package/SVF-doxygen/html/TCT_8cpp_source.html +3 -3
- package/SVF-doxygen/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/VFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/VFGNode_8h_source.html +12 -12
- package/SVF-doxygen/html/VFG_8cpp_source.html +18 -18
- package/SVF-doxygen/html/VFG_8h_source.html +17 -17
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/WPASolver_8h_source.html +2 -2
- package/SVF-doxygen/html/WTO_8h_source.html +2 -2
- package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/Z3Expr_8cpp_source.html +5 -5
- package/SVF-doxygen/html/Z3Expr_8h_source.html +303 -294
- package/SVF-doxygen/html/ae_8cpp_source.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +119 -119
- package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +1517 -1538
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +68 -68
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr-members.html +77 -72
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +450 -294
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +51 -51
- package/SVF-doxygen/html/classSVF_1_1BranchVFGNode.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFGNormalizer.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CSC.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +35 -35
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +97 -97
- package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +13 -13
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1CopyStmt-members.html +48 -33
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +206 -65
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GenericGraphReader.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +56 -56
- package/SVF-doxygen/html/classSVF_1_1GrammarBase.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGWriter.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1IntervalESBase.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +40 -35
- package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +512 -307
- package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +331 -312
- package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +19 -19
- package/SVF-doxygen/html/classSVF_1_1LockAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1MultiOpndStmt.html +48 -48
- package/SVF-doxygen/html/classSVF_1_1MutableDFPTData.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1NumericLiteral-members.html +50 -43
- package/SVF-doxygen/html/classSVF_1_1NumericLiteral.html +574 -343
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1Options-members.html +129 -128
- package/SVF-doxygen/html/classSVF_1_1Options.html +26 -0
- package/SVF-doxygen/html/classSVF_1_1PAGBuilderFromFile.html +204 -135
- package/SVF-doxygen/html/classSVF_1_1PCG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1POCRSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PTAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PersistentDFPTData.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PersistentDiffPTData.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PersistentPTData.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PersistentPointsToCache.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +46 -46
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ReaderIDToObjMap.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1ReaderPtrPool.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1RelExeState.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +362 -358
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +35 -35
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +32 -25
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +51 -51
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +49 -40
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1346 -909
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder-members.html +62 -61
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +211 -131
- package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +1122 -1121
- package/SVF-doxygen/html/classSVF_1_1SVFIRWriter.html +429 -427
- package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFModuleReader.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFModuleWriter.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +14 -14
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +38 -38
- package/SVF-doxygen/html/classSVF_1_1SingleAbsValue-members.html +96 -91
- package/SVF-doxygen/html/classSVF_1_1SingleAbsValue.html +19 -5
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +17 -17
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfoReader.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +22 -22
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +21 -21
- package/SVF-doxygen/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +44 -44
- package/SVF-doxygen/html/classSVF_1_1VFG.html +17 -17
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1WPAMinimumSolver.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1WPASCCSolver.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Z3Expr-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +227 -221
- package/SVF-doxygen/html/classSymblicAbstractionTest.html +6 -6
- package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/functions_a.html +11 -8
- package/SVF-doxygen/html/functions_b.html +8 -5
- package/SVF-doxygen/html/functions_c.html +23 -14
- package/SVF-doxygen/html/functions_e.html +1 -1
- package/SVF-doxygen/html/functions_enum.html +3 -0
- package/SVF-doxygen/html/functions_eval_b.html +3 -0
- package/SVF-doxygen/html/functions_eval_c.html +3 -0
- package/SVF-doxygen/html/functions_eval_f.html +9 -0
- package/SVF-doxygen/html/functions_eval_i.html +3 -0
- package/SVF-doxygen/html/functions_eval_p.html +3 -0
- package/SVF-doxygen/html/functions_eval_s.html +6 -0
- package/SVF-doxygen/html/functions_eval_t.html +3 -0
- package/SVF-doxygen/html/functions_eval_u.html +3 -0
- package/SVF-doxygen/html/functions_eval_z.html +79 -0
- package/SVF-doxygen/html/functions_f.html +21 -12
- package/SVF-doxygen/html/functions_func.html +2 -2
- package/SVF-doxygen/html/functions_func_b.html +3 -3
- package/SVF-doxygen/html/functions_func_g.html +47 -12
- package/SVF-doxygen/html/functions_func_i.html +19 -9
- package/SVF-doxygen/html/functions_func_n.html +1 -1
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_func_z.html +1 -1
- package/SVF-doxygen/html/functions_g.html +54 -19
- package/SVF-doxygen/html/functions_i.html +18 -5
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_o.html +15 -15
- package/SVF-doxygen/html/functions_p.html +28 -29
- package/SVF-doxygen/html/functions_r.html +1 -1
- package/SVF-doxygen/html/functions_s.html +24 -16
- package/SVF-doxygen/html/functions_t.html +7 -4
- package/SVF-doxygen/html/functions_u.html +6 -3
- package/SVF-doxygen/html/functions_v.html +4 -6
- package/SVF-doxygen/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/functions_w.html +13 -7
- package/SVF-doxygen/html/functions_z.html +4 -1
- package/SVF-doxygen/html/menudata.js +2 -1
- package/SVF-doxygen/html/namespaceSVF.html +689 -617
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1 -1
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +1 -1
- package/SVF-doxygen/html/namespacemembers_s.html +6 -0
- package/SVF-doxygen/html/namespacemembers_type_s.html +6 -0
- package/SVF-doxygen/html/namespacemembers_type_u.html +6 -0
- package/SVF-doxygen/html/namespacemembers_u.html +6 -0
- package/SVF-doxygen/html/search/all_1.js +135 -134
- package/SVF-doxygen/html/search/all_10.js +326 -325
- package/SVF-doxygen/html/search/all_11.js +226 -226
- package/SVF-doxygen/html/search/all_12.js +574 -570
- package/SVF-doxygen/html/search/all_13.js +208 -207
- package/SVF-doxygen/html/search/all_14.js +73 -70
- package/SVF-doxygen/html/search/all_15.js +176 -176
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -26
- package/SVF-doxygen/html/search/all_1a.js +179 -179
- package/SVF-doxygen/html/search/all_2.js +182 -181
- package/SVF-doxygen/html/search/all_3.js +642 -640
- package/SVF-doxygen/html/search/all_4.js +236 -236
- package/SVF-doxygen/html/search/all_5.js +126 -126
- package/SVF-doxygen/html/search/all_6.js +235 -232
- package/SVF-doxygen/html/search/all_7.js +1056 -1047
- package/SVF-doxygen/html/search/all_8.js +215 -215
- package/SVF-doxygen/html/search/all_9.js +632 -629
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +204 -204
- package/SVF-doxygen/html/search/all_e.js +209 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +28 -28
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +74 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +73 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +38 -38
- package/SVF-doxygen/html/search/classes_8.js +59 -59
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +4 -4
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +4 -4
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +4 -4
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -15
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +5 -4
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +37 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +49 -47
- package/SVF-doxygen/html/search/files_0.js +16 -16
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +53 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +17 -17
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +368 -368
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +299 -299
- package/SVF-doxygen/html/search/functions_13.js +73 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +72 -72
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +179 -179
- package/SVF-doxygen/html/search/functions_2.js +94 -94
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +57 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +872 -863
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +440 -438
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +36 -36
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -63
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +13 -11
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +177 -177
- package/SVF-doxygen/html/search/variables_1.js +77 -76
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -142
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +79 -79
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +57 -57
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structSVF_1_1Hash.html +6 -6
- package/SVF-doxygen/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +12 -12
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +6 -6
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NumericLiteral_01_4.html +5 -5
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SingleAbsValue_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +6 -6
- package/SVF-doxygen/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +21 -21
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +21 -21
- package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +3 -3
- package/package.json +1 -1
- package/svf/include/AE/Core/BoundedZ3Expr.h +33 -20
- package/svf/include/AE/Core/IntervalValue.h +57 -5
- package/svf/include/AE/Core/NumericLiteral.h +31 -1
- package/svf/include/AE/Core/RelationSolver.h +1 -1
- package/svf/include/AE/Svfexe/SVFIR2ItvExeState.h +10 -0
- package/svf/include/SVFIR/SVFIR.h +2 -1
- package/svf/include/SVFIR/SVFStatements.h +12 -2
- package/svf/include/Util/GeneralType.h +4 -0
- package/svf/include/Util/Options.h +3 -0
- package/svf/include/Util/Z3Expr.h +9 -2
- package/svf/lib/AE/Core/RelationSolver.cpp +11 -6
- package/svf/lib/AE/Svfexe/AbstractExecution.cpp +13 -34
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +6 -6
- package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +217 -23
- package/svf/lib/SVFIR/PAGBuilderFromFile.cpp +62 -3
- package/svf/lib/SVFIR/SVFFileSystem.cpp +4 -1
- package/svf/lib/SVFIR/SVFIR.cpp +3 -3
- package/svf/lib/Util/Options.cpp +8 -0
- package/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +39 -3
- package/svf-llvm/lib/LLVMModule.cpp +21 -2
- package/svf-llvm/lib/SVFIRBuilder.cpp +7 -7
- package/svf-llvm/lib/SVFIRExtAPI.cpp +3 -3
|
@@ -131,13 +131,13 @@ $(function() {
|
|
|
131
131
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div>
|
|
132
132
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (intType->isSigned())</div>
|
|
133
133
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div>
|
|
134
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<
|
|
135
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<
|
|
134
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s16_t>::max());</div>
|
|
135
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s16_t>::min());</div>
|
|
136
136
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div>
|
|
137
137
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">else</span></div>
|
|
138
138
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
|
|
139
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<
|
|
140
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<
|
|
139
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u16_t>::max());</div>
|
|
140
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u16_t>::min());</div>
|
|
141
141
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
|
142
142
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
|
|
143
143
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 8)</div>
|
|
@@ -169,981 +169,1196 @@ $(function() {
|
|
|
169
169
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
170
170
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
|
|
171
171
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
|
172
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
173
|
-
<div class="line"><a name="l00113"></a><span class="lineno"
|
|
174
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> 
|
|
175
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">
|
|
172
|
+
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a9cd033e4586788de716f41875ab2b87f"> 112</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a9cd033e4586788de716f41875ab2b87f">SVFIR2ItvExeState::getZExtValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
173
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div>
|
|
174
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = var-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>();</div>
|
|
175
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFIntegerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
176
176
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div>
|
|
177
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
178
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
179
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> 
|
|
180
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
181
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
182
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
183
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
184
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
185
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
186
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
187
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
188
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
189
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
190
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
191
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
|
|
192
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
|
193
|
-
<div class="line"><a name="l00133"></a><span class="lineno"
|
|
194
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> 
|
|
195
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
196
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
197
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
198
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
199
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> 
|
|
200
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> 
|
|
201
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> 
|
|
202
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
203
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> 
|
|
204
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
205
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
206
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
207
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
208
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
209
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <
|
|
210
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
211
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
|
|
212
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
213
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
214
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
215
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
216
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
217
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
218
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
219
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
|
|
220
|
-
<div class="line"><a name="l00160"></a><span class="lineno"
|
|
221
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
222
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> 
|
|
223
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
224
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
225
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
226
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> 
|
|
227
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
228
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
229
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
230
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
231
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
232
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
233
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
234
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
235
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
236
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
237
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
238
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
239
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
240
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
241
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
242
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
243
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
244
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
245
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
246
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
247
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
248
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
249
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
250
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
251
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
252
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
253
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
254
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
177
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bits = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getByteSize() * 8;</div>
|
|
178
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].is_numeral())</div>
|
|
179
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div>
|
|
180
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (bits == 8)</div>
|
|
181
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div>
|
|
182
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  int8_t signed_i8_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getIntNumeral();</div>
|
|
183
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(signed_i8_value);</div>
|
|
184
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
185
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div>
|
|
186
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 16)</div>
|
|
187
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
|
188
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> signed_i16_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getIntNumeral();</div>
|
|
189
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">u16_t</a><span class="keyword">></span>(signed_i16_value);</div>
|
|
190
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
191
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
|
|
192
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 32)</div>
|
|
193
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div>
|
|
194
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> signed_i32_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getIntNumeral();</div>
|
|
195
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a><span class="keyword">></span>(signed_i32_value);</div>
|
|
196
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
197
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div>
|
|
198
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 64)</div>
|
|
199
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div>
|
|
200
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> signed_i64_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getIntNumeral();</div>
|
|
201
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value);</div>
|
|
202
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// we only support i64 at most</span></div>
|
|
203
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div>
|
|
204
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">else</span></div>
|
|
205
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div>
|
|
206
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support int type other than u8/16/32/64"</span>);</div>
|
|
207
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
|
|
208
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div>
|
|
209
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">else</span></div>
|
|
210
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div>
|
|
211
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>(); <span class="comment">// TODO: may have better solution</span></div>
|
|
212
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
|
|
213
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
|
214
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support non-integer type"</span>);</div>
|
|
215
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div>
|
|
216
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
217
|
+
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a5d65dbc9a43181494a32d41a03065685"> 157</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a5d65dbc9a43181494a32d41a03065685">SVFIR2ItvExeState::getSExtValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
218
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
|
|
219
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()];</div>
|
|
220
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
|
|
221
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
|
222
|
+
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ad53e6d2fc9d1410df236584bb66c585a"> 162</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ad53e6d2fc9d1410df236584bb66c585a">SVFIR2ItvExeState::getFPToSIntValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
223
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div>
|
|
224
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].is_real())</div>
|
|
225
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div>
|
|
226
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
227
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">double</span> float_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">getRealNumeral</a>();</div>
|
|
228
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">double</span> float_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].ub().getRealNumeral();</div>
|
|
229
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
230
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
231
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
232
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(int_lb, int_ub);</div>
|
|
233
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div>
|
|
234
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">else</span></div>
|
|
235
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div>
|
|
236
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> getSExtValue(var);</div>
|
|
237
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div>
|
|
238
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div>
|
|
239
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
|
240
|
+
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a25165fdbe2b56b34ee8ab094bbe89494"> 180</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a25165fdbe2b56b34ee8ab094bbe89494">SVFIR2ItvExeState::getFPToUIntValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
241
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> {</div>
|
|
242
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].is_real())</div>
|
|
243
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
244
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
245
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">double</span> float_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">getRealNumeral</a>();</div>
|
|
246
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">double</span> float_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].ub().getRealNumeral();</div>
|
|
247
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
248
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
249
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
250
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(int_lb, int_ub);</div>
|
|
251
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
|
252
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">else</span></div>
|
|
253
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div>
|
|
254
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> getZExtValue(var);</div>
|
|
255
255
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
256
256
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> }</div>
|
|
257
257
|
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
|
258
|
-
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
258
|
+
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ad3b0ac993ccfb0846f62aeb5eaf62b30"> 198</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ad3b0ac993ccfb0846f62aeb5eaf62b30">SVFIR2ItvExeState::getSIntToFPValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
259
259
|
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
|
|
260
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="
|
|
261
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
262
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
263
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
264
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
265
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
266
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
267
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
268
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
269
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
270
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
271
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
272
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
273
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
274
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
275
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="
|
|
276
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
277
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
278
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
279
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
280
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> 
|
|
281
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
282
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> 
|
|
283
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
284
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
|
|
285
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
286
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
287
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
288
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
289
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
290
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
291
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
292
|
-
<div class="line"><a name="l00232"></a><span class="lineno"
|
|
293
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div>
|
|
294
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> 
|
|
295
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
296
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
297
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> 
|
|
298
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
299
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
300
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
301
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
302
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
303
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
304
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
305
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
306
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> 
|
|
307
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> 
|
|
308
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> 
|
|
309
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> 
|
|
310
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> 
|
|
311
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
|
|
312
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
313
|
-
<div class="line"><a name="
|
|
260
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// get the sint value of ub and lb</span></div>
|
|
261
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
262
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].ub().getIntNumeral();</div>
|
|
263
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
264
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_lb);</div>
|
|
265
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_ub);</div>
|
|
266
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
267
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> }</div>
|
|
268
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
|
|
269
|
+
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aaeef5c66931c38f2ea2002b53b255530"> 209</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aaeef5c66931c38f2ea2002b53b255530">SVFIR2ItvExeState::getUIntToFPValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
270
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> {</div>
|
|
271
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// get the uint value of ub and lb</span></div>
|
|
272
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
273
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].ub().getIntNumeral();</div>
|
|
274
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
275
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_lb);</div>
|
|
276
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_ub);</div>
|
|
277
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
278
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div>
|
|
279
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
|
280
|
+
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a15dbee007f3afb718a202f50fa87177f"> 220</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a15dbee007f3afb718a202f50fa87177f">SVFIR2ItvExeState::getTruncValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
281
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div>
|
|
282
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// get the value of ub and lb</span></div>
|
|
283
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
284
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].ub().getIntNumeral();</div>
|
|
285
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// get dst type</span></div>
|
|
286
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dst_bits = dstType-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>() * 8;</div>
|
|
287
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span> (dst_bits == 8)</div>
|
|
288
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
289
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
290
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  int8_t s8_lb = <span class="keyword">static_cast<</span>int8_t<span class="keyword">></span>(int_lb);</div>
|
|
291
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  int8_t s8_ub = <span class="keyword">static_cast<</span>int8_t<span class="keyword">></span>(int_ub);</div>
|
|
292
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (s8_lb > s8_ub)</div>
|
|
293
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div>
|
|
294
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// return range of s8</span></div>
|
|
295
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
296
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
|
297
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s8_lb, s8_ub);</div>
|
|
298
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
299
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst_bits == 16)</div>
|
|
300
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div>
|
|
301
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
302
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> s16_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a><span class="keyword">></span>(int_lb);</div>
|
|
303
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> s16_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a><span class="keyword">></span>(int_ub);</div>
|
|
304
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span> (s16_lb > s16_ub)</div>
|
|
305
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div>
|
|
306
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="comment">// return range of s16</span></div>
|
|
307
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
308
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div>
|
|
309
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s16_lb, s16_ub);</div>
|
|
310
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
|
311
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst_bits == 32)</div>
|
|
312
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div>
|
|
313
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
314
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> s32_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">></span>(int_lb);</div>
|
|
315
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> s32_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">></span>(int_ub);</div>
|
|
316
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> (s32_lb > s32_ub)</div>
|
|
317
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div>
|
|
318
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// return range of s32</span></div>
|
|
319
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
320
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
321
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s32_lb, s32_ub);</div>
|
|
322
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div>
|
|
323
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div>
|
|
324
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div>
|
|
325
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support dst int type other than u8/16/32"</span>);</div>
|
|
326
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div>
|
|
327
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div>
|
|
328
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  </div>
|
|
329
|
+
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ad633ce5462cf878b4bc9e6e5ab079354"> 269</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ad633ce5462cf878b4bc9e6e5ab079354">SVFIR2ItvExeState::getFPTruncValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
330
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div>
|
|
331
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">// TODO: now we do not really handle fptrunc</span></div>
|
|
332
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">return</span> _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()];</div>
|
|
333
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> }</div>
|
|
334
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
|
|
335
|
+
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e"> 275</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVFIR2ItvExeState::applySummary</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &es)</div>
|
|
314
336
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div>
|
|
315
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">
|
|
316
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> 
|
|
317
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
318
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> 
|
|
319
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span> (<span class="
|
|
337
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>)</div>
|
|
338
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div>
|
|
339
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  _es._varToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
340
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
341
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>)</div>
|
|
320
342
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
|
321
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <
|
|
322
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
323
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> 
|
|
324
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
325
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <
|
|
326
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
327
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
328
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
329
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
330
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> 
|
|
331
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
332
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
333
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
334
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
335
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
336
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
337
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
338
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
339
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> 
|
|
340
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
341
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> 
|
|
342
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> 
|
|
343
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> 
|
|
344
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> 
|
|
345
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> 
|
|
346
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
347
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
348
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
349
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
350
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> 
|
|
351
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> 
|
|
352
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
353
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
354
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> 
|
|
355
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> 
|
|
356
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> 
|
|
357
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
358
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> 
|
|
359
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> 
|
|
360
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> 
|
|
361
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> 
|
|
362
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
|
|
363
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
364
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> 
|
|
365
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> 
|
|
366
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
367
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> 
|
|
368
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
369
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
370
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> 
|
|
371
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
|
|
372
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
373
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
374
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> 
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="
|
|
391
|
-
<div class="line"><a name="
|
|
392
|
-
<div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
343
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  _es._locToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
344
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
|
345
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
346
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div>
|
|
347
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  _es._varToAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
348
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div>
|
|
349
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
350
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {</div>
|
|
351
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  _es._locToAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
352
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
|
353
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div>
|
|
354
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
|
355
|
+
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1"> 295</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVFIR2ItvExeState::moveToGlobal</a>()</div>
|
|
356
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> {</div>
|
|
357
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: _es._varToItvVal)</div>
|
|
358
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div>
|
|
359
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.insert(it);</div>
|
|
360
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  }</div>
|
|
361
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: _es._locToItvVal)</div>
|
|
362
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {</div>
|
|
363
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>.insert(it);</div>
|
|
364
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
365
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &_varToVAddr: _es._varToAddrs)</div>
|
|
366
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div>
|
|
367
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.insert(_varToVAddr);</div>
|
|
368
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div>
|
|
369
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &_locToVAddr: _es._locToAddrs)</div>
|
|
370
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
371
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.insert(_locToVAddr);</div>
|
|
372
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
|
373
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
|
374
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  _es._varToItvVal.clear();</div>
|
|
375
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.erase(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->getBlkPtr());</div>
|
|
376
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  _es._varToItvVal[<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-><a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
377
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  _es._locToItvVal.clear();</div>
|
|
378
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  _es._varToAddrs.clear();</div>
|
|
379
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  _es._locToAddrs.clear();</div>
|
|
380
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> }</div>
|
|
381
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  </div>
|
|
382
|
+
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a198fd724be35f415851a2467c3930f76"> 322</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a198fd724be35f415851a2467c3930f76">SVFIR2ItvExeState::widenAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &rhs)</div>
|
|
383
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> {</div>
|
|
384
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
385
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div>
|
|
386
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.find(rhsItem.first);</div>
|
|
387
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.end())</div>
|
|
388
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div>
|
|
389
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second)</div>
|
|
390
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div>
|
|
391
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">if</span> (!lhsIter->second.contains(addr))</div>
|
|
392
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div>
|
|
393
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
|
|
394
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div>
|
|
395
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  lhsIter->second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
|
|
396
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
|
397
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
|
398
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div>
|
|
399
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div>
|
|
400
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div>
|
|
401
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
402
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
|
403
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.find(rhsItem.first);</div>
|
|
404
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.end())</div>
|
|
405
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div>
|
|
406
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second)</div>
|
|
407
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div>
|
|
408
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">if</span> (!lhsIter->second.contains(addr))</div>
|
|
409
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div>
|
|
410
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
|
|
411
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div>
|
|
412
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  lhsIter->second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
|
|
413
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div>
|
|
414
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
|
415
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div>
|
|
416
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div>
|
|
417
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
|
|
418
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }</div>
|
|
419
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
|
|
420
|
+
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a103b55536f1cec38edb2f169d3f94675"> 360</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a103b55536f1cec38edb2f169d3f94675">SVFIR2ItvExeState::narrowAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &rhs)</div>
|
|
421
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div>
|
|
422
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
423
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  {</div>
|
|
424
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.find(rhsItem.first);</div>
|
|
425
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.end())</div>
|
|
426
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  {</div>
|
|
427
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second)</div>
|
|
428
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div>
|
|
429
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
|
|
430
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
|
431
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  lhsIter->second = rhsItem.second;</div>
|
|
432
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">break</span>;</div>
|
|
433
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
|
434
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div>
|
|
435
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
|
436
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
|
|
437
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
438
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  {</div>
|
|
439
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.find(rhsItem.first);</div>
|
|
440
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.end())</div>
|
|
441
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  {</div>
|
|
442
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second)</div>
|
|
443
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  {</div>
|
|
444
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
|
|
445
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div>
|
|
446
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  lhsIter->second = rhsItem.second;</div>
|
|
447
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">break</span>;</div>
|
|
448
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  }</div>
|
|
449
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div>
|
|
450
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div>
|
|
451
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div>
|
|
452
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> }</div>
|
|
453
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
|
|
454
|
+
<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966"> 394</a></span> <a class="code" href="classSVF_1_1AddressValue.html">SVFIR2ItvExeState::Addrs</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">SVFIR2ItvExeState::getGepObjAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
|
|
455
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> {</div>
|
|
456
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  assert(!getAddrs(pointer).empty());</div>
|
|
457
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &addrs = getAddrs(pointer);</div>
|
|
458
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> ret;</div>
|
|
459
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
460
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div>
|
|
461
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> baseObj = getInternalID(addr);</div>
|
|
462
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">if</span> (baseObj == 0)</div>
|
|
463
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  {</div>
|
|
464
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(0));</div>
|
|
465
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">continue</span>;</div>
|
|
466
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  }</div>
|
|
467
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  assert(SVFUtil::isa<ObjVar>(_svfir->getGNode(baseObj)) && <span class="stringliteral">"Fail to get the base object address!"</span>);</div>
|
|
468
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = _svfir->getGepObjVar(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
469
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  initSVFVar(gepObj);</div>
|
|
470
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(gepObj));</div>
|
|
471
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div>
|
|
472
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">return</span> ret;</div>
|
|
473
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> }</div>
|
|
444
474
|
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
456
|
-
<div class="line"><a name="
|
|
457
|
-
<div class="line"><a name="
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
463
|
-
<div class="line"><a name="
|
|
464
|
-
<div class="line"><a name="
|
|
465
|
-
<div class="line"><a name="
|
|
466
|
-
<div class="line"><a name="
|
|
467
|
-
<div class="line"><a name="
|
|
468
|
-
<div class="line"><a name="
|
|
469
|
-
<div class="line"><a name="
|
|
470
|
-
<div class="line"><a name="
|
|
471
|
-
<div class="line"><a name="
|
|
472
|
-
<div class="line"><a name="
|
|
473
|
-
<div class="line"><a name="
|
|
474
|
-
<div class="line"><a name="
|
|
475
|
-
<div class="line"><a name="
|
|
476
|
-
<div class="line"><a name="
|
|
477
|
-
<div class="line"><a name="
|
|
478
|
-
<div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="
|
|
484
|
-
<div class="line"><a name="
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
491
|
-
<div class="line"><a name="
|
|
492
|
-
<div class="line"><a name="
|
|
493
|
-
<div class="line"><a name="
|
|
494
|
-
<div class="line"><a name="
|
|
495
|
-
<div class="line"><a name="
|
|
496
|
-
<div class="line"><a name="
|
|
497
|
-
<div class="line"><a name="
|
|
498
|
-
<div class="line"><a name="
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="
|
|
504
|
-
<div class="line"><a name="
|
|
505
|
-
<div class="line"><a name="
|
|
506
|
-
<div class="line"><a name="
|
|
507
|
-
<div class="line"><a name="
|
|
508
|
-
<div class="line"><a name="
|
|
509
|
-
<div class="line"><a name="
|
|
510
|
-
<div class="line"><a name="
|
|
511
|
-
<div class="line"><a name="
|
|
512
|
-
<div class="line"><a name="
|
|
513
|
-
<div class="line"><a name="
|
|
514
|
-
<div class="line"><a name="
|
|
515
|
-
<div class="line"><a name="
|
|
516
|
-
<div class="line"><a name="
|
|
517
|
-
<div class="line"><a name="
|
|
518
|
-
<div class="line"><a name="
|
|
519
|
-
<div class="line"><a name="
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="
|
|
522
|
-
<div class="line"><a name="
|
|
523
|
-
<div class="line"><a name="
|
|
524
|
-
<div class="line"><a name="
|
|
525
|
-
<div class="line"><a name="
|
|
526
|
-
<div class="line"><a name="
|
|
527
|
-
<div class="line"><a name="
|
|
528
|
-
<div class="line"><a name="
|
|
529
|
-
<div class="line"><a name="
|
|
530
|
-
<div class="line"><a name="
|
|
531
|
-
<div class="line"><a name="
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="
|
|
534
|
-
<div class="line"><a name="
|
|
535
|
-
<div class="line"><a name="
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="
|
|
538
|
-
<div class="line"><a name="
|
|
539
|
-
<div class="line"><a name="
|
|
540
|
-
<div class="line"><a name="
|
|
541
|
-
<div class="line"><a name="
|
|
542
|
-
<div class="line"><a name="
|
|
543
|
-
<div class="line"><a name="
|
|
544
|
-
<div class="line"><a name="
|
|
545
|
-
<div class="line"><a name="
|
|
546
|
-
<div class="line"><a name="
|
|
547
|
-
<div class="line"><a name="
|
|
548
|
-
<div class="line"><a name="
|
|
549
|
-
<div class="line"><a name="
|
|
550
|
-
<div class="line"><a name="
|
|
551
|
-
<div class="line"><a name="
|
|
552
|
-
<div class="line"><a name="
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="
|
|
599
|
-
<div class="line"><a name="
|
|
600
|
-
<div class="line"><a name="
|
|
601
|
-
<div class="line"><a name="
|
|
602
|
-
<div class="line"><a name="
|
|
603
|
-
<div class="line"><a name="
|
|
604
|
-
<div class="line"><a name="
|
|
605
|
-
<div class="line"><a name="
|
|
606
|
-
<div class="line"><a name="
|
|
607
|
-
<div class="line"><a name="
|
|
608
|
-
<div class="line"><a name="
|
|
609
|
-
<div class="line"><a name="
|
|
610
|
-
<div class="line"><a name="
|
|
611
|
-
<div class="line"><a name="
|
|
612
|
-
<div class="line"><a name="
|
|
613
|
-
<div class="line"><a name="
|
|
614
|
-
<div class="line"><a name="
|
|
615
|
-
<div class="line"><a name="
|
|
616
|
-
<div class="line"><a name="
|
|
617
|
-
<div class="line"><a name="
|
|
618
|
-
<div class="line"><a name="
|
|
619
|
-
<div class="line"><a name="
|
|
620
|
-
<div class="line"><a name="
|
|
621
|
-
<div class="line"><a name="
|
|
622
|
-
<div class="line"><a name="
|
|
623
|
-
<div class="line"><a name="
|
|
624
|
-
<div class="line"><a name="
|
|
625
|
-
<div class="line"><a name="
|
|
626
|
-
<div class="line"><a name="
|
|
627
|
-
<div class="line"><a name="
|
|
628
|
-
<div class="line"><a name="
|
|
629
|
-
<div class="line"><a name="
|
|
630
|
-
<div class="line"><a name="
|
|
631
|
-
<div class="line"><a name="
|
|
632
|
-
<div class="line"><a name="
|
|
633
|
-
<div class="line"><a name="
|
|
634
|
-
<div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="
|
|
646
|
-
<div class="line"><a name="
|
|
647
|
-
<div class="line"><a name="
|
|
648
|
-
<div class="line"><a name="
|
|
649
|
-
<div class="line"><a name="
|
|
650
|
-
<div class="line"><a name="
|
|
651
|
-
<div class="line"><a name="
|
|
652
|
-
<div class="line"><a name="
|
|
653
|
-
<div class="line"><a name="
|
|
654
|
-
<div class="line"><a name="
|
|
655
|
-
<div class="line"><a name="
|
|
656
|
-
<div class="line"><a name="
|
|
657
|
-
<div class="line"><a name="
|
|
658
|
-
<div class="line"><a name="
|
|
659
|
-
<div class="line"><a name="
|
|
660
|
-
<div class="line"><a name="
|
|
661
|
-
<div class="line"><a name="
|
|
662
|
-
<div class="line"><a name="
|
|
663
|
-
<div class="line"><a name="
|
|
664
|
-
<div class="line"><a name="
|
|
665
|
-
<div class="line"><a name="
|
|
666
|
-
<div class="line"><a name="
|
|
667
|
-
<div class="line"><a name="
|
|
668
|
-
<div class="line"><a name="
|
|
669
|
-
<div class="line"><a name="
|
|
670
|
-
<div class="line"><a name="
|
|
671
|
-
<div class="line"><a name="
|
|
672
|
-
<div class="line"><a name="
|
|
673
|
-
<div class="line"><a name="
|
|
674
|
-
<div class="line"><a name="
|
|
675
|
-
<div class="line"><a name="
|
|
676
|
-
<div class="line"><a name="
|
|
677
|
-
<div class="line"><a name="
|
|
678
|
-
<div class="line"><a name="
|
|
679
|
-
<div class="line"><a name="
|
|
680
|
-
<div class="line"><a name="
|
|
681
|
-
<div class="line"><a name="
|
|
682
|
-
<div class="line"><a name="
|
|
683
|
-
<div class="line"><a name="
|
|
684
|
-
<div class="line"><a name="
|
|
685
|
-
<div class="line"><a name="
|
|
686
|
-
<div class="line"><a name="
|
|
687
|
-
<div class="line"><a name="
|
|
688
|
-
<div class="line"><a name="
|
|
689
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">break</span>;</div>
|
|
690
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  }</div>
|
|
691
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
692
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
693
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
694
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
695
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  {</div>
|
|
696
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
697
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  {</div>
|
|
698
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() > *rhs.begin());</div>
|
|
699
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div>
|
|
700
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">else</span></div>
|
|
701
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  {</div>
|
|
702
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
703
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div>
|
|
704
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">break</span>;</div>
|
|
705
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div>
|
|
706
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
707
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
708
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
709
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
710
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div>
|
|
711
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
712
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div>
|
|
713
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() >= *rhs.begin());</div>
|
|
714
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div>
|
|
715
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">else</span></div>
|
|
716
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  {</div>
|
|
717
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
718
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  }</div>
|
|
475
|
+
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e"> 437</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVFIR2ItvExeState::getByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
476
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div>
|
|
477
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
478
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">accumulateConstantByteOffset</a>());</div>
|
|
479
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0); <span class="comment">// Initialize the result interval 'res' to 0.</span></div>
|
|
480
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="comment">// Loop through the offsetVarAndGepTypePairVec in reverse order.</span></div>
|
|
481
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
482
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  {</div>
|
|
483
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* idxOperandVar =</div>
|
|
484
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first;</div>
|
|
485
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* idxOperandType =</div>
|
|
486
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].second;</div>
|
|
487
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// calculating Array/Ptr by elemByteSize * indexOperand</span></div>
|
|
488
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFArrayType>(idxOperandType) || SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
489
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
490
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemByteSize = 1;</div>
|
|
491
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrOperandType = SVFUtil::dyn_cast<SVFArrayType>(idxOperandType))</div>
|
|
492
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  elemByteSize = arrOperandType->getTypeOfElement()->getByteSize();</div>
|
|
493
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
494
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  elemByteSize = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
495
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">else</span></div>
|
|
496
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"idxOperandType must be ArrType or PtrType"</span>);</div>
|
|
497
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast<SVFConstantInt>(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
|
|
498
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  {</div>
|
|
499
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemByteSize >= op->getSExtValue() ?op->getSExtValue() * elemByteSize</div>
|
|
500
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
501
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, lb);</div>
|
|
502
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div>
|
|
503
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">else</span></div>
|
|
504
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div>
|
|
505
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir->getValueNode(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>());</div>
|
|
506
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = _es[idx];</div>
|
|
507
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
508
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
509
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">else</span></div>
|
|
510
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  {</div>
|
|
511
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="comment">// if lb or ub is negative number, set 0.</span></div>
|
|
512
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// if lb or ub is positive number, guarantee lb/ub * elemByteSize <= MaxFieldLimit</span></div>
|
|
513
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
514
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
515
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
516
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
517
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
518
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>()) ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
519
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
520
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div>
|
|
521
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
|
|
522
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div>
|
|
523
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// Process struct subtype by calculating the byte offset from beginning to the field of struct</span></div>
|
|
524
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structOperandType = SVFUtil::dyn_cast<SVFStructType>(idxOperandType))</div>
|
|
525
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div>
|
|
526
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">getStructFieldOffset</a>(</div>
|
|
527
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  idxOperandVar, structOperandType));</div>
|
|
528
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  }</div>
|
|
529
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">else</span></div>
|
|
530
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  {</div>
|
|
531
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"gep type pair only support arr/ptr/struct"</span>);</div>
|
|
532
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div>
|
|
533
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div>
|
|
534
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte offset as an IntervalValue.</span></div>
|
|
535
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> }</div>
|
|
536
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
|
|
537
|
+
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3"> 507</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
538
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> {</div>
|
|
539
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
540
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">accumulateConstantOffset</a>());</div>
|
|
541
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0);</div>
|
|
542
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
543
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  {</div>
|
|
544
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">AccessPath::IdxOperandPair</a> IdxVarAndType =</div>
|
|
545
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i];</div>
|
|
546
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value =</div>
|
|
547
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first->getValue();</div>
|
|
548
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = IdxVarAndType.second;</div>
|
|
549
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">// idxLb/Ub is the flattened offset generated by the current OffsetVarAndGepTypePair</span></div>
|
|
550
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxLb;</div>
|
|
551
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxUb;</div>
|
|
552
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="comment">// get lb and ub of the index value</span></div>
|
|
553
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* constInt = SVFUtil::dyn_cast<SVFConstantInt>(value))</div>
|
|
554
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  idxLb = idxUb = constInt->getSExtValue();</div>
|
|
555
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">else</span></div>
|
|
556
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  {</div>
|
|
557
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxItv = _es[_svfir->getValueNode(value)];</div>
|
|
558
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">if</span> (idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
559
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  idxLb = idxUb = 0;</div>
|
|
560
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">else</span></div>
|
|
561
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  {</div>
|
|
562
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  idxLb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
563
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  idxUb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
564
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
|
|
565
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div>
|
|
566
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="comment">// for pointer type, flattened index = elemNum * idx</span></div>
|
|
567
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
568
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div>
|
|
569
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemNum = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>());</div>
|
|
570
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  idxLb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxLb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxLb * elemNum;</div>
|
|
571
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  idxUb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxUb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxUb * elemNum;</div>
|
|
572
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  }</div>
|
|
573
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="comment">// for array or struct, get flattened index from SymbolTable Info</span></div>
|
|
574
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">else</span></div>
|
|
575
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  {</div>
|
|
576
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">Options::ModelArrays</a>())</div>
|
|
577
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div>
|
|
578
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
|
|
579
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  -><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
580
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  -><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
581
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">if</span> (so.empty() || idxUb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() || idxLb < 0)</div>
|
|
582
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div>
|
|
583
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  idxLb = idxUb = 0;</div>
|
|
584
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div>
|
|
585
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">else</span></div>
|
|
586
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div>
|
|
587
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  idxLb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
588
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxLb);</div>
|
|
589
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  idxUb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
590
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxUb);</div>
|
|
591
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div>
|
|
592
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
|
|
593
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">else</span></div>
|
|
594
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  idxLb = idxUb = 0;</div>
|
|
595
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  }</div>
|
|
596
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(idxLb, idxUb);</div>
|
|
597
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
598
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  res.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()));</div>
|
|
599
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">if</span> (res.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
600
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  {</div>
|
|
601
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
602
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div>
|
|
603
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">return</span> res;</div>
|
|
604
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> }</div>
|
|
605
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  </div>
|
|
606
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  </div>
|
|
607
|
+
<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 582</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
608
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> {</div>
|
|
609
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  </div>
|
|
610
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
611
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  {</div>
|
|
612
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-><a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
|
|
613
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
614
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  {</div>
|
|
615
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast<SVFConstantInt>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
616
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {</div>
|
|
617
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> numeral = consInt->getSExtValue();</div>
|
|
618
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
|
|
619
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  }</div>
|
|
620
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast<SVFConstantFP>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
621
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
622
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFConstantNullPtr>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
623
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
624
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFGlobalValue>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
625
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
|
|
626
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
627
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
628
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">else</span></div>
|
|
629
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
630
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  }</div>
|
|
631
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">else</span></div>
|
|
632
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
|
|
633
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div>
|
|
634
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">else</span></div>
|
|
635
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
|
|
636
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> }</div>
|
|
637
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
|
|
638
|
+
<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 614</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
639
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> {</div>
|
|
640
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">if</span> (inVarToValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
|
|
641
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
|
|
642
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div>
|
|
643
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
644
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast<ObjVar>(svfVar))</div>
|
|
645
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  {</div>
|
|
646
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  initObjVar(objVar, varId);</div>
|
|
647
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">return</span>;</div>
|
|
648
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div>
|
|
649
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">else</span></div>
|
|
650
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div>
|
|
651
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not an obj var?"</span>);</div>
|
|
652
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div>
|
|
653
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> }</div>
|
|
654
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div>
|
|
655
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  </div>
|
|
656
|
+
<div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 632</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
|
|
657
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> {</div>
|
|
658
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  initSVFVar(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
659
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">if</span> (inVarToValTable(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
660
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  {</div>
|
|
661
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="comment">// if addr RHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
662
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">if</span> (addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">getKind</a>() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
663
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  {</div>
|
|
664
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()].meet_with(</div>
|
|
665
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  getRangeLimitFromType(addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()));</div>
|
|
666
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  }</div>
|
|
667
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
668
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  </div>
|
|
669
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div>
|
|
670
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
671
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  {</div>
|
|
672
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(</div>
|
|
673
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
674
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  }</div>
|
|
675
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">else</span></div>
|
|
676
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div>
|
|
677
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
678
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  }</div>
|
|
679
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> }</div>
|
|
680
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
|
|
681
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  </div>
|
|
682
|
+
<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 658</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
|
|
683
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> {</div>
|
|
684
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
685
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
686
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
687
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">if</span> (!inVarToValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
688
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">if</span> (!inVarToValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
689
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">if</span> (inVarToValTable(op0) && inVarToValTable(op1))</div>
|
|
690
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  {</div>
|
|
691
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = _es[op0], &rhs = _es[op1];</div>
|
|
692
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
693
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
694
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  {</div>
|
|
695
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
696
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
697
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  resVal = (lhs + rhs);</div>
|
|
698
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">break</span>;</div>
|
|
699
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
700
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
701
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  resVal = (lhs - rhs);</div>
|
|
702
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keywordflow">break</span>;</div>
|
|
703
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
704
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
705
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  resVal = (lhs * rhs);</div>
|
|
706
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">break</span>;</div>
|
|
707
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
708
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
709
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
710
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  resVal = (lhs / rhs);</div>
|
|
711
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">break</span>;</div>
|
|
712
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
713
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
714
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
715
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  resVal = (lhs % rhs);</div>
|
|
716
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">break</span>;</div>
|
|
717
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
718
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  resVal = (lhs ^ rhs);</div>
|
|
719
719
|
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">break</span>;</div>
|
|
720
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
721
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
722
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> 
|
|
723
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">case</span> <a class="code" href="
|
|
724
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> 
|
|
725
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
726
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
727
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
728
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
729
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
730
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
731
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
732
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> 
|
|
733
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
720
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
721
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  resVal = (lhs & rhs);</div>
|
|
722
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">break</span>;</div>
|
|
723
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
724
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  resVal = (lhs | rhs);</div>
|
|
725
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">break</span>;</div>
|
|
726
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
727
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  resVal = (lhs >> rhs);</div>
|
|
728
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">break</span>;</div>
|
|
729
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
730
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  resVal = (lhs << rhs);</div>
|
|
731
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">break</span>;</div>
|
|
732
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
733
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  resVal = (lhs >> rhs);</div>
|
|
734
734
|
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">break</span>;</div>
|
|
735
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
736
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> 
|
|
737
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> 
|
|
738
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> 
|
|
739
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> 
|
|
740
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
741
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
742
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
743
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
744
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> 
|
|
745
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> 
|
|
746
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> 
|
|
747
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> 
|
|
748
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
749
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> 
|
|
750
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> 
|
|
751
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <
|
|
752
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> 
|
|
753
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> 
|
|
754
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">
|
|
755
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> 
|
|
756
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> 
|
|
757
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">
|
|
758
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
759
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> 
|
|
760
|
-
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> 
|
|
761
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> 
|
|
762
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> 
|
|
763
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> 
|
|
764
|
-
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> 
|
|
765
|
-
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  </div>
|
|
766
|
-
<div class="line"><a name="l00742"></a><span class="lineno"
|
|
767
|
-
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> 
|
|
768
|
-
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> 
|
|
769
|
-
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> 
|
|
770
|
-
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> 
|
|
771
|
-
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> 
|
|
772
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="
|
|
773
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
774
|
-
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <
|
|
775
|
-
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="
|
|
776
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> 
|
|
777
|
-
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> 
|
|
778
|
-
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> 
|
|
779
|
-
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> 
|
|
780
|
-
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> 
|
|
781
|
-
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> 
|
|
782
|
-
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> 
|
|
783
|
-
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> 
|
|
784
|
-
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> 
|
|
785
|
-
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> 
|
|
786
|
-
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> 
|
|
787
|
-
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> 
|
|
788
|
-
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> 
|
|
789
|
-
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> 
|
|
790
|
-
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> 
|
|
791
|
-
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> 
|
|
792
|
-
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> 
|
|
793
|
-
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> 
|
|
794
|
-
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> 
|
|
795
|
-
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> 
|
|
796
|
-
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">
|
|
735
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">default</span>:</div>
|
|
736
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  {</div>
|
|
737
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
738
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div>
|
|
739
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div>
|
|
740
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  _es[res] = resVal;</div>
|
|
741
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  }</div>
|
|
742
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> }</div>
|
|
743
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
|
|
744
|
+
<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 720</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
|
|
745
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> {</div>
|
|
746
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
747
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
748
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
749
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">if</span> (inVarToValTable(op0) && inVarToValTable(op1))</div>
|
|
750
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  {</div>
|
|
751
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
752
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = _es[op0], &rhs = _es[op1];</div>
|
|
753
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
754
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
755
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div>
|
|
756
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
757
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
758
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
759
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  resVal = (lhs == rhs);</div>
|
|
760
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">break</span>;</div>
|
|
761
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
762
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
763
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
764
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  resVal = (lhs != rhs);</div>
|
|
765
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">break</span>;</div>
|
|
766
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
767
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
768
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
769
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
770
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  resVal = (lhs > rhs);</div>
|
|
771
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">break</span>;</div>
|
|
772
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
773
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
774
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
775
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
776
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  resVal = (lhs >= rhs);</div>
|
|
777
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">break</span>;</div>
|
|
778
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
779
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
780
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
781
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
782
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  resVal = (lhs < rhs);</div>
|
|
783
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordflow">break</span>;</div>
|
|
784
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
785
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
786
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
787
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
788
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  resVal = (lhs <= rhs);</div>
|
|
789
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">break</span>;</div>
|
|
790
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
791
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
792
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">break</span>;</div>
|
|
793
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
794
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
795
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">break</span>;</div>
|
|
796
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">default</span>:</div>
|
|
797
797
|
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  {</div>
|
|
798
|
-
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="
|
|
799
|
-
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> 
|
|
798
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
799
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div>
|
|
800
800
|
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div>
|
|
801
|
-
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> 
|
|
802
|
-
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> 
|
|
803
|
-
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> 
|
|
804
|
-
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> 
|
|
805
|
-
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> 
|
|
806
|
-
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> 
|
|
807
|
-
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  </div>
|
|
808
|
-
<div class="line"><a name="l00784"></a><span class="lineno"
|
|
809
|
-
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> 
|
|
810
|
-
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> 
|
|
811
|
-
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> 
|
|
812
|
-
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> 
|
|
813
|
-
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> 
|
|
814
|
-
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> 
|
|
815
|
-
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> 
|
|
816
|
-
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> 
|
|
817
|
-
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> 
|
|
818
|
-
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> 
|
|
819
|
-
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> 
|
|
820
|
-
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> 
|
|
821
|
-
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> 
|
|
822
|
-
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> 
|
|
823
|
-
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> 
|
|
824
|
-
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> 
|
|
825
|
-
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> 
|
|
826
|
-
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> 
|
|
827
|
-
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> 
|
|
828
|
-
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> 
|
|
829
|
-
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> 
|
|
830
|
-
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> 
|
|
831
|
-
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> 
|
|
832
|
-
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
|
|
833
|
-
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> 
|
|
834
|
-
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> 
|
|
835
|
-
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> 
|
|
836
|
-
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  </div>
|
|
837
|
-
<div class="line"><a name="l00813"></a><span class="lineno"
|
|
838
|
-
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> 
|
|
839
|
-
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> 
|
|
840
|
-
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> 
|
|
841
|
-
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> 
|
|
842
|
-
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> 
|
|
843
|
-
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> 
|
|
844
|
-
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> 
|
|
845
|
-
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> 
|
|
846
|
-
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> 
|
|
847
|
-
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> 
|
|
848
|
-
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> 
|
|
849
|
-
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> 
|
|
850
|
-
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> 
|
|
851
|
-
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="
|
|
852
|
-
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> 
|
|
853
|
-
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> 
|
|
854
|
-
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> 
|
|
855
|
-
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> 
|
|
856
|
-
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> 
|
|
857
|
-
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> 
|
|
858
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> 
|
|
859
|
-
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> 
|
|
860
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> 
|
|
861
|
-
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> 
|
|
862
|
-
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> 
|
|
863
|
-
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> 
|
|
864
|
-
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> 
|
|
865
|
-
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> }</div>
|
|
866
|
-
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  </div>
|
|
867
|
-
<div class="line"><a name="l00843"></a><span class="lineno"
|
|
868
|
-
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> 
|
|
869
|
-
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> 
|
|
870
|
-
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> 
|
|
871
|
-
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> 
|
|
872
|
-
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> 
|
|
873
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> 
|
|
874
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> 
|
|
875
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> 
|
|
876
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> 
|
|
877
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> 
|
|
878
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> 
|
|
879
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> 
|
|
880
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> 
|
|
881
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> 
|
|
882
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> 
|
|
883
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <
|
|
884
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> 
|
|
885
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">
|
|
886
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> 
|
|
887
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> 
|
|
888
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> 
|
|
889
|
-
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> 
|
|
890
|
-
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> 
|
|
891
|
-
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> }</div>
|
|
892
|
-
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
|
|
893
|
-
<div class="line"><a name="l00869"></a><span class="lineno"
|
|
894
|
-
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> 
|
|
895
|
-
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> 
|
|
896
|
-
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> 
|
|
897
|
-
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> 
|
|
898
|
-
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> 
|
|
899
|
-
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> 
|
|
900
|
-
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> 
|
|
901
|
-
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">
|
|
801
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  _es[res] = resVal;</div>
|
|
802
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  }</div>
|
|
803
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) && inVarToAddrsTable(op1))</div>
|
|
804
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
805
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
806
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &lhs = getAddrs(op0), &rhs = getAddrs(op1);</div>
|
|
807
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() && !rhs.empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
808
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
809
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
810
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  {</div>
|
|
811
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
812
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
813
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
814
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div>
|
|
815
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
816
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div>
|
|
817
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
|
|
818
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  }</div>
|
|
819
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordflow">else</span></div>
|
|
820
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div>
|
|
821
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
|
|
822
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  {</div>
|
|
823
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
824
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div>
|
|
825
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">else</span></div>
|
|
826
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  {</div>
|
|
827
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
828
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div>
|
|
829
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div>
|
|
830
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">break</span>;</div>
|
|
831
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div>
|
|
832
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
833
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
834
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
835
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div>
|
|
836
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
837
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  {</div>
|
|
838
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
|
|
839
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  }</div>
|
|
840
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">else</span></div>
|
|
841
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  {</div>
|
|
842
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
|
|
843
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div>
|
|
844
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
845
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  }</div>
|
|
846
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">else</span></div>
|
|
847
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  {</div>
|
|
848
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
|
|
849
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  }</div>
|
|
850
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div>
|
|
851
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">break</span>;</div>
|
|
852
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div>
|
|
853
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
854
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
855
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
856
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
857
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div>
|
|
858
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
859
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div>
|
|
860
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() > *rhs.begin());</div>
|
|
861
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div>
|
|
862
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">else</span></div>
|
|
863
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
864
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
865
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  }</div>
|
|
866
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">break</span>;</div>
|
|
867
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div>
|
|
868
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
869
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
870
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
871
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
872
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  {</div>
|
|
873
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
874
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div>
|
|
875
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() >= *rhs.begin());</div>
|
|
876
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div>
|
|
877
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span></div>
|
|
878
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  {</div>
|
|
879
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
880
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div>
|
|
881
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">break</span>;</div>
|
|
882
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
|
|
883
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
884
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
885
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
886
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
887
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  {</div>
|
|
888
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
889
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  {</div>
|
|
890
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() < *rhs.begin());</div>
|
|
891
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
892
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keywordflow">else</span></div>
|
|
893
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  {</div>
|
|
894
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
895
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div>
|
|
896
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">break</span>;</div>
|
|
897
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  }</div>
|
|
898
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
899
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
900
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
901
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
902
902
|
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  {</div>
|
|
903
|
-
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> 
|
|
904
|
-
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> 
|
|
905
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> 
|
|
906
|
-
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> 
|
|
907
|
-
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> 
|
|
908
|
-
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> 
|
|
909
|
-
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> 
|
|
910
|
-
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> 
|
|
911
|
-
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> 
|
|
912
|
-
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> 
|
|
913
|
-
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> 
|
|
914
|
-
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> 
|
|
915
|
-
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> 
|
|
916
|
-
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> 
|
|
917
|
-
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> 
|
|
918
|
-
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> 
|
|
919
|
-
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> 
|
|
920
|
-
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> 
|
|
921
|
-
<div class="line"><a name="l00897"></a><span class="lineno"
|
|
922
|
-
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> 
|
|
923
|
-
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> 
|
|
924
|
-
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> 
|
|
925
|
-
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> 
|
|
926
|
-
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> 
|
|
927
|
-
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> 
|
|
928
|
-
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> 
|
|
929
|
-
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> 
|
|
930
|
-
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> 
|
|
931
|
-
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> 
|
|
932
|
-
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> 
|
|
933
|
-
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> 
|
|
934
|
-
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> 
|
|
935
|
-
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> 
|
|
936
|
-
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> 
|
|
937
|
-
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> 
|
|
938
|
-
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> 
|
|
939
|
-
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> 
|
|
940
|
-
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> 
|
|
941
|
-
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> 
|
|
942
|
-
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> 
|
|
943
|
-
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> 
|
|
944
|
-
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> 
|
|
945
|
-
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> 
|
|
946
|
-
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> 
|
|
947
|
-
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> 
|
|
948
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> 
|
|
949
|
-
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> 
|
|
950
|
-
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> 
|
|
951
|
-
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> 
|
|
952
|
-
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> }</div>
|
|
953
|
-
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  </div>
|
|
954
|
-
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> 
|
|
955
|
-
<div class="line"><a name="l00931"></a><span class="lineno"
|
|
956
|
-
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> 
|
|
957
|
-
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> 
|
|
958
|
-
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> 
|
|
959
|
-
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> 
|
|
960
|
-
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> 
|
|
961
|
-
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> 
|
|
962
|
-
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> 
|
|
963
|
-
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> 
|
|
964
|
-
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> 
|
|
965
|
-
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> 
|
|
966
|
-
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> 
|
|
903
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
904
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  {</div>
|
|
905
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() <= *rhs.begin());</div>
|
|
906
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  }</div>
|
|
907
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">else</span></div>
|
|
908
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  {</div>
|
|
909
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
910
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  }</div>
|
|
911
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">break</span>;</div>
|
|
912
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div>
|
|
913
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
914
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
915
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">break</span>;</div>
|
|
916
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
917
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
918
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">break</span>;</div>
|
|
919
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keywordflow">default</span>:</div>
|
|
920
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  {</div>
|
|
921
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
922
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div>
|
|
923
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  }</div>
|
|
924
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  _es[res] = resVal;</div>
|
|
925
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  }</div>
|
|
926
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> }</div>
|
|
927
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  </div>
|
|
928
|
+
<div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68"> 904</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVFIR2ItvExeState::translateLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
|
|
929
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> {</div>
|
|
930
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
931
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
932
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
933
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  {</div>
|
|
934
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &addrs = getAddrs(rhs);</div>
|
|
935
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
936
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
937
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
938
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
939
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
940
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  {</div>
|
|
941
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
|
|
942
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">if</span> (inLocToValTable(objId))</div>
|
|
943
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  {</div>
|
|
944
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es.load(addr));</div>
|
|
945
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  isVal = <span class="keyword">true</span>;</div>
|
|
946
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  }</div>
|
|
947
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
|
|
948
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  {</div>
|
|
949
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(_es.loadAddrs(addr));</div>
|
|
950
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
951
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
|
|
952
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div>
|
|
953
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
954
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div>
|
|
955
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="comment">// lhs var is an integer</span></div>
|
|
956
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  _es[lhs] = rhsItv;</div>
|
|
957
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div>
|
|
958
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
959
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  {</div>
|
|
960
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="comment">// lhs var is an address</span></div>
|
|
961
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  _es.getAddrs(lhs) = rhsAddr;</div>
|
|
962
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div>
|
|
963
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">else</span></div>
|
|
964
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div>
|
|
965
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="comment">// rhs not initialized, e.g., absence of a store before load</span></div>
|
|
966
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div>
|
|
967
967
|
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div>
|
|
968
968
|
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> }</div>
|
|
969
969
|
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  </div>
|
|
970
|
-
<div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
970
|
+
<div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 946</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
|
|
971
971
|
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> {</div>
|
|
972
|
-
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="namespaceSVF.html#
|
|
973
|
-
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <a class="code" href="namespaceSVF.html#
|
|
974
|
-
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">if</span> (
|
|
972
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
973
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
974
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
|
|
975
975
|
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  {</div>
|
|
976
|
-
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> 
|
|
977
|
-
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> 
|
|
978
|
-
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> 
|
|
979
|
-
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> 
|
|
980
|
-
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> 
|
|
981
|
-
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> 
|
|
982
|
-
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> 
|
|
983
|
-
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> }</div>
|
|
976
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
977
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  {</div>
|
|
978
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  assert(!getAddrs(lhs).empty());</div>
|
|
979
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &addrs = getAddrs(lhs);</div>
|
|
980
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
981
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div>
|
|
982
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  _es.store(addr, _es[rhs]);</div>
|
|
983
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  }</div>
|
|
984
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
985
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
986
|
+
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  {</div>
|
|
987
|
+
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  assert(!getAddrs(lhs).empty());</div>
|
|
988
|
+
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &addrs = getAddrs(lhs);</div>
|
|
989
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
990
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div>
|
|
991
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  assert(!getAddrs(rhs).empty());</div>
|
|
992
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  _es.storeAddrs(addr, getAddrs(rhs));</div>
|
|
993
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  }</div>
|
|
994
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  </div>
|
|
995
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  }</div>
|
|
996
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  }</div>
|
|
997
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> }</div>
|
|
998
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  </div>
|
|
999
|
+
<div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 975</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
|
|
1000
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> {</div>
|
|
1001
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
1002
|
+
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
1003
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
1004
|
+
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div>
|
|
1005
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1006
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div>
|
|
1007
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">else</span></div>
|
|
1008
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  {</div>
|
|
1009
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
1010
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  {</div>
|
|
1011
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">CopyStmt::COPYVAL</a>)</div>
|
|
1012
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  {</div>
|
|
1013
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  _es[lhs] = _es[rhs];</div>
|
|
1014
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div>
|
|
1015
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">CopyStmt::ZEXT</a>)</div>
|
|
1016
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  {</div>
|
|
1017
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  _es[lhs] = getZExtValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1018
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  }</div>
|
|
1019
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">CopyStmt::SEXT</a>)</div>
|
|
1020
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  {</div>
|
|
1021
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  _es[lhs] = getSExtValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1022
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div>
|
|
1023
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">CopyStmt::FPTOSI</a>)</div>
|
|
1024
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  {</div>
|
|
1025
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  _es[lhs] = getFPToSIntValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1026
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div>
|
|
1027
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c">CopyStmt::FPTOUI</a>)</div>
|
|
1028
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  {</div>
|
|
1029
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  _es[lhs] = getFPToUIntValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1030
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div>
|
|
1031
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">CopyStmt::SITOFP</a>)</div>
|
|
1032
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  {</div>
|
|
1033
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  _es[lhs] = getSIntToFPValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1034
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  }</div>
|
|
1035
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">CopyStmt::UITOFP</a>)</div>
|
|
1036
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  {</div>
|
|
1037
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  _es[lhs] = getUIntToFPValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1038
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  }</div>
|
|
1039
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">CopyStmt::TRUNC</a>)</div>
|
|
1040
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  {</div>
|
|
1041
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  _es[lhs] = getTruncValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
1042
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div>
|
|
1043
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">CopyStmt::FPTRUNC</a>)</div>
|
|
1044
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  {</div>
|
|
1045
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  _es[lhs] = getFPTruncValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
1046
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div>
|
|
1047
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">else</span></div>
|
|
1048
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  {</div>
|
|
1049
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined copy kind"</span>);</div>
|
|
1050
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  abort();</div>
|
|
1051
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div>
|
|
1052
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div>
|
|
1053
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1054
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  {</div>
|
|
1055
|
+
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1056
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  _es.getAddrs(lhs) = getAddrs(rhs);</div>
|
|
1057
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  }</div>
|
|
1058
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  }</div>
|
|
1059
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> }</div>
|
|
1060
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  </div>
|
|
1061
|
+
<div class="line"><a name="l01037"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 1037</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
1062
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> {</div>
|
|
1063
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1064
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1065
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
|
|
1066
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1067
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> &rhsVal = getAddrs(rhs);</div>
|
|
1068
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <span class="keywordflow">if</span> (rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
|
|
1069
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetPair = getItvOfFlattenedElemIndex(gep);</div>
|
|
1070
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
|
|
1071
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">return</span>;</div>
|
|
1072
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">else</span></div>
|
|
1073
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  {</div>
|
|
1074
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <a class="code" href="classSVF_1_1AddressValue.html">Addrs</a> gepAddrs;</div>
|
|
1075
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1076
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1077
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1078
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1079
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i <= ub; i++)</div>
|
|
1080
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getGepObjAddress(rhs, i));</div>
|
|
1081
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">if</span>(gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
|
|
1082
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  _es.getAddrs(lhs) = gepAddrs;</div>
|
|
1083
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span>;</div>
|
|
1084
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  }</div>
|
|
1085
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> }</div>
|
|
1086
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  </div>
|
|
1087
|
+
<div class="line"><a name="l01063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 1063</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
|
|
1088
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> {</div>
|
|
1089
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1090
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-><a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1091
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-><a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1092
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-><a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1093
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keywordflow">if</span> (inVarToValTable(tval) && inVarToValTable(fval) && inVarToValTable(cond))</div>
|
|
1094
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  {</div>
|
|
1095
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
|
|
1096
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  {</div>
|
|
1097
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  _es[res] = _es[cond].is_zero() ? _es[fval] : _es[tval];</div>
|
|
1098
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  }</div>
|
|
1099
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">else</span></div>
|
|
1100
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  {</div>
|
|
1101
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  _es[res] = _es[cond];</div>
|
|
1102
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  }</div>
|
|
1103
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  }</div>
|
|
1104
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) && inVarToAddrsTable(fval) && inVarToValTable(cond))</div>
|
|
1105
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  {</div>
|
|
1106
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
|
|
1107
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  {</div>
|
|
1108
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  assert(!getAddrs(fval).empty());</div>
|
|
1109
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  assert(!getAddrs(tval).empty());</div>
|
|
1110
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  _es.getAddrs(res) = _es[cond].is_zero() ? getAddrs(fval) : getAddrs(tval);</div>
|
|
1111
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div>
|
|
1112
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  }</div>
|
|
1113
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> }</div>
|
|
1114
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  </div>
|
|
1115
|
+
<div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 1091</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVFIR2ItvExeState::translatePhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
|
|
1116
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> {</div>
|
|
1117
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1118
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
1119
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
1120
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
1121
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
|
|
1122
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  {</div>
|
|
1123
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
|
|
1124
|
+
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keywordflow">if</span> (inVarToValTable(curId))</div>
|
|
1125
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  {</div>
|
|
1126
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es[curId]);</div>
|
|
1127
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  isVal = <span class="keyword">true</span>;</div>
|
|
1128
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  }</div>
|
|
1129
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
|
|
1130
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  {</div>
|
|
1131
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  assert(!getAddrs(curId).empty());</div>
|
|
1132
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getAddrs(curId));</div>
|
|
1133
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
1134
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  }</div>
|
|
1135
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  }</div>
|
|
1136
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
1137
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  {</div>
|
|
1138
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="comment">// res var is an integer</span></div>
|
|
1139
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  _es[res] = rhsItv;</div>
|
|
1140
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  }</div>
|
|
1141
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
1142
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  {</div>
|
|
1143
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <span class="comment">// res var is an address</span></div>
|
|
1144
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  _es.getAddrs(res) = rhsAddr;</div>
|
|
1145
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  }</div>
|
|
1146
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> }</div>
|
|
1147
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  </div>
|
|
1148
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  </div>
|
|
1149
|
+
<div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 1125</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
|
|
1150
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> {</div>
|
|
1151
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1152
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1153
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
1154
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  {</div>
|
|
1155
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  _es[lhs] = _es[rhs];</div>
|
|
1156
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  }</div>
|
|
1157
|
+
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1158
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  {</div>
|
|
1159
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1160
|
+
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  _es.getAddrs(lhs) = getAddrs(rhs);</div>
|
|
1161
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  }</div>
|
|
1162
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> }</div>
|
|
1163
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  </div>
|
|
1164
|
+
<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 1140</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
|
|
1165
|
+
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> {</div>
|
|
1166
|
+
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1167
|
+
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1168
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
1169
|
+
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  {</div>
|
|
1170
|
+
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  _es[lhs] = _es[rhs];</div>
|
|
1171
|
+
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  }</div>
|
|
1172
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1173
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  {</div>
|
|
1174
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1175
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  _es.getAddrs(lhs) = getAddrs(rhs);</div>
|
|
1176
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  }</div>
|
|
1177
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> }</div>
|
|
984
1178
|
</div><!-- fragment --></div><!-- contents -->
|
|
985
1179
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a1f279344b4061838d7b3498631bc907c"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">SVF::AccessPath::getStructFieldOffset</a></div><div class="ttdeci">u32_t getStructFieldOffset(const SVFVar *idxOperandVar, const SVFStructType *idxOperandType) const</div><div class="ttdoc">Return byte offset from the beginning of the structure to the field where it is located for struct ty...</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00164">AccessPath.cpp:164</a></div></div>
|
|
986
|
-
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#
|
|
987
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
988
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1180
|
+
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00060">GeneralType.h:60</a></div></div>
|
|
1181
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00926">SVFStatements.h:926</a></div></div>
|
|
1182
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01125">SVFIR2ItvExeState.cpp:1125</a></div></div>
|
|
989
1183
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00364">SVFStatements.h:364</a></div></div>
|
|
990
1184
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a4bc7962d519c1c0380b5a6a144c91c51"><div class="ttname"><a href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">SVF::SVFType::getKind</a></div><div class="ttdeci">GNodeK getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00213">SVFType.h:213</a></div></div>
|
|
991
1185
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a95b8031f1e15d49c7d68628be1d05aae"><div class="ttname"><a href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">SVF::SVFType::getByteSize</a></div><div class="ttdeci">u32_t getByteSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00244">SVFType.h:244</a></div></div>
|
|
992
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
993
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a28a7ca818584abdc2d345b41d592c5dc"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">SVF::GepStmt::accumulateConstantByteOffset</a></div><div class="ttdeci">APOffset accumulateConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1186
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01007">SVFStatements.h:1007</a></div></div>
|
|
1187
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a28a7ca818584abdc2d345b41d592c5dc"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">SVF::GepStmt::accumulateConstantByteOffset</a></div><div class="ttdeci">APOffset accumulateConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00532">SVFStatements.h:532</a></div></div>
|
|
994
1188
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afbb9ff1f2c47d2afda117bf63a80a1a7"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afbb9ff1f2c47d2afda117bf63a80a1a7">SVF::SVFIR2ItvExeState::getRangeLimitFromType</a></div><div class="ttdeci">IntervalValue getRangeLimitFromType(const SVFType *type)</div><div class="ttdoc">Return the value range of Integer SVF Type, e.g. unsigned i8 Type->[0, 255], signed i8 Type->[-128,...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00050">SVFIR2ItvExeState.cpp:50</a></div></div>
|
|
995
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
996
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
997
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1189
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01001">SVFStatements.h:1001</a></div></div>
|
|
1190
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01005">SVFStatements.h:1005</a></div></div>
|
|
1191
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00916">SVFStatements.h:916</a></div></div>
|
|
998
1192
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a056e0db56033ac4dc041e6d82d614dbd"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">SVF::IntervalExeState::getAddrs</a></div><div class="ttdeci">Addrs & getAddrs(u32_t id) override</div><div class="ttdoc">get memory addresses of variable</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00454">IntervalExeState.h:454</a></div></div>
|
|
999
1193
|
<div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
|
|
1000
1194
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a7b4921dea37246f0f08dffa7db384a61"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">SVF::AccessPath::gepSrcPointeeType</a></div><div class="ttdeci">const SVFType * gepSrcPointeeType() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00112">AccessPath.h:112</a></div></div>
|
|
1001
|
-
<div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1002
|
-
<div class="ttc" id="
|
|
1195
|
+
<div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00771">SVFStatements.h:771</a></div></div>
|
|
1196
|
+
<div class="ttc" id="anamespaceSVF_html_a7c3a917e8b1d3253982e0a1a37b74d93"><div class="ttname"><a href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">SVF::u16_t</a></div><div class="ttdeci">unsigned short u16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00052">GeneralType.h:52</a></div></div>
|
|
1197
|
+
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00885">SVFStatements.h:885</a></div></div>
|
|
1003
1198
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a5c6efcc023e90ef2e618586091958c59"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">SVF::MultiOpndStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID(u32_t pos) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00284">SVFStatements.cpp:284</a></div></div>
|
|
1004
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1199
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01063">SVFIR2ItvExeState.cpp:1063</a></div></div>
|
|
1005
1200
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_acad5216bdc02a234d57abfe9ae72a12a"><div class="ttname"><a href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">SVF::AddressValue::join_with</a></div><div class="ttdeci">bool join_with(const AddressValue &other)</div><div class="ttdoc">Current AddressValue joins with another AddressValue.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00141">AddressValue.h:141</a></div></div>
|
|
1006
1201
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_ae93859318bf4f618b4cf681988a870ce"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">SVF::AddressValue::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00120">AddressValue.h:120</a></div></div>
|
|
1007
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1008
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">SVF::CmpStmt::FCMP_OLE</a></div><div class="ttdeci">@ FCMP_OLE</div><div class="ttdoc">0 1 0 1 True if ordered and less than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1202
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00912">SVFStatements.h:912</a></div></div>
|
|
1203
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">SVF::CmpStmt::FCMP_OLE</a></div><div class="ttdeci">@ FCMP_OLE</div><div class="ttdoc">0 1 0 1 True if ordered and less than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00917">SVFStatements.h:917</a></div></div>
|
|
1009
1204
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
|
|
1010
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
1011
|
-
<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#
|
|
1205
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00220">IntervalValue.h:220</a></div></div>
|
|
1206
|
+
<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#l00935">SVFStatements.h:935</a></div></div>
|
|
1012
1207
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVF::SVFType::SVFIntegerTy</a></div><div class="ttdeci">@ SVFIntegerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00169">SVFType.h:169</a></div></div>
|
|
1013
1208
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
1014
|
-
<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#
|
|
1209
|
+
<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#l01013">SVFStatements.h:1013</a></div></div>
|
|
1210
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad633ce5462cf878b4bc9e6e5ab079354"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad633ce5462cf878b4bc9e6e5ab079354">SVF::SVFIR2ItvExeState::getFPTruncValue</a></div><div class="ttdeci">IntervalValue getFPTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00269">SVFIR2ItvExeState.cpp:269</a></div></div>
|
|
1015
1211
|
<div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
|
|
1016
|
-
<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#
|
|
1017
|
-
<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#
|
|
1018
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1019
|
-
<div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1020
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a144e17cec654e83654298b379ed4ce9f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">SVF::IntervalValue::meet_with</a></div><div class="ttdeci">void meet_with(const IntervalValue &other)</div><div class="ttdoc">Return a intersected IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
1021
|
-
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1022
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1023
|
-
<div class="ttc" id="
|
|
1024
|
-
<div class="ttc" id="
|
|
1025
|
-
<div class="ttc" id="
|
|
1026
|
-
<div class="ttc" id="
|
|
1212
|
+
<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#l00998">SVFStatements.h:998</a></div></div>
|
|
1213
|
+
<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#l00934">SVFStatements.h:934</a></div></div>
|
|
1214
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00632">SVFIR2ItvExeState.cpp:632</a></div></div>
|
|
1215
|
+
<div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00839">SVFStatements.h:839</a></div></div>
|
|
1216
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a144e17cec654e83654298b379ed4ce9f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">SVF::IntervalValue::meet_with</a></div><div class="ttdeci">void meet_with(const IntervalValue &other)</div><div class="ttdoc">Return a intersected IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00460">IntervalValue.h:460</a></div></div>
|
|
1217
|
+
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00628">SVFStatements.h:628</a></div></div>
|
|
1218
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00894">SVFStatements.h:894</a></div></div>
|
|
1219
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">SVF::CopyStmt::SEXT</a></div><div class="ttdeci">@ SEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
|
|
1220
|
+
<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#l01012">SVFStatements.h:1012</a></div></div>
|
|
1221
|
+
<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#l01008">SVFStatements.h:1008</a></div></div>
|
|
1222
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00720">SVFIR2ItvExeState.cpp:720</a></div></div>
|
|
1223
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01037">SVFIR2ItvExeState.cpp:1037</a></div></div>
|
|
1027
1224
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
|
|
1028
|
-
<div class="ttc" id="
|
|
1029
|
-
<div class="ttc" id="
|
|
1030
|
-
<div class="ttc" id="
|
|
1031
|
-
<div class="ttc" id="
|
|
1032
|
-
<div class="ttc" id="
|
|
1033
|
-
<div class="ttc" id="
|
|
1225
|
+
<div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00048">GeneralType.h:48</a></div></div>
|
|
1226
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00913">SVFStatements.h:913</a></div></div>
|
|
1227
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a198e8d5f586a698462dee2c3fde8c83e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVF::SVFIR2ItvExeState::applySummary</a></div><div class="ttdeci">void applySummary(IntervalExeState &es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00275">SVFIR2ItvExeState.cpp:275</a></div></div>
|
|
1228
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01091">SVFIR2ItvExeState.cpp:1091</a></div></div>
|
|
1229
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01002">SVFStatements.h:1002</a></div></div>
|
|
1230
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01004">SVFStatements.h:1004</a></div></div>
|
|
1231
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00914">SVFStatements.h:914</a></div></div>
|
|
1034
1232
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
1035
|
-
<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#
|
|
1233
|
+
<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#l00937">SVFStatements.h:937</a></div></div>
|
|
1036
1234
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00501">SymbolTableInfo.cpp:501</a></div></div>
|
|
1037
|
-
<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#
|
|
1038
|
-
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1235
|
+
<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#l01010">SVFStatements.h:1010</a></div></div>
|
|
1236
|
+
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00568">SVFStatements.h:568</a></div></div>
|
|
1039
1237
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
1040
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1238
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01009">SVFStatements.h:1009</a></div></div>
|
|
1239
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">SVF::CopyStmt::FPTRUNC</a></div><div class="ttdeci">@ FPTRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
|
|
1041
1240
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
|
|
1042
1241
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00083">IntervalValue.h:83</a></div></div>
|
|
1043
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1242
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00904">SVFIR2ItvExeState.cpp:904</a></div></div>
|
|
1044
1243
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
1045
1244
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00180">SymbolTableInfo.cpp:180</a></div></div>
|
|
1046
1245
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00298">SVFStatements.h:298</a></div></div>
|
|
1047
|
-
<div class="ttc" id="
|
|
1048
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1049
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1050
|
-
<div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1246
|
+
<div class="ttc" id="anamespaceSVF_html_a6ce4cf67f8622443c888737d7366a3e9"><div class="ttname"><a href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">SVF::s16_t</a></div><div class="ttdeci">signed short s16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00053">GeneralType.h:53</a></div></div>
|
|
1247
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00925">SVFStatements.h:925</a></div></div>
|
|
1248
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
|
|
1249
|
+
<div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00410">SVFStatements.h:410</a></div></div>
|
|
1051
1250
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
1052
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a348de09a7ccd04d1fa76fa6b250249ba"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::IdxOperandPairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1053
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1054
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1251
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a348de09a7ccd04d1fa76fa6b250249ba"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::IdxOperandPairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00518">SVFStatements.h:518</a></div></div>
|
|
1252
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01140">SVFIR2ItvExeState.cpp:1140</a></div></div>
|
|
1253
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00939">SVFStatements.h:939</a></div></div>
|
|
1055
1254
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00377">SVFType.h:377</a></div></div>
|
|
1056
1255
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
1057
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1256
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00658">SVFIR2ItvExeState.cpp:658</a></div></div>
|
|
1058
1257
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5dc699aa85fe879eb4b2c9109cf3030d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">SVF::SymbolTableInfo::getTypeInfo</a></div><div class="ttdeci">const StInfo * getTypeInfo(const SVFType *T) const</div><div class="ttdoc">Get struct info.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00056">SymbolTableInfo.cpp:56</a></div></div>
|
|
1059
1258
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
1060
1259
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00156">SVFType.h:156</a></div></div>
|
|
1061
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1062
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath & getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1260
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00924">SVFStatements.h:924</a></div></div>
|
|
1261
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath & getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00514">SVFStatements.h:514</a></div></div>
|
|
1063
1262
|
<div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00344">SVFType.h:344</a></div></div>
|
|
1064
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a335922caf105ee72cd9d66a451ae3d4e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVF::SVFIR2ItvExeState::getByteOffset</a></div><div class="ttdeci">IntervalValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1065
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1263
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a335922caf105ee72cd9d66a451ae3d4e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVF::SVFIR2ItvExeState::getByteOffset</a></div><div class="ttdeci">IntervalValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00437">SVFIR2ItvExeState.cpp:437</a></div></div>
|
|
1264
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00997">SVFStatements.h:997</a></div></div>
|
|
1066
1265
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00169">IRGraph.h:169</a></div></div>
|
|
1067
|
-
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1266
|
+
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00877">SVFStatements.h:877</a></div></div>
|
|
1068
1267
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_acba74693030fca248521412c552e3dcc"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">SVF::IntervalESBase::_locToItvVal</a></div><div class="ttdeci">LocToValMap _locToItvVal</div><div class="ttdoc">Map a memory address to its stored interval value.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00148">IntervalExeState.h:148</a></div></div>
|
|
1069
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1268
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00936">SVFStatements.h:936</a></div></div>
|
|
1070
1269
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00966">SVFValue.h:966</a></div></div>
|
|
1071
1270
|
<div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01000">SVFValue.h:1000</a></div></div>
|
|
1072
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1271
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01000">SVFStatements.h:1000</a></div></div>
|
|
1073
1272
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4f482ca73cc6e7b8d946651e2b2ea2ae"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">SVF::AccessPath::IdxOperandPair</a></div><div class="ttdeci">std::pair< const SVFVar *, const SVFType * > IdxOperandPair</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00064">AccessPath.h:64</a></div></div>
|
|
1074
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1075
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
1076
|
-
<div class="ttc" id="
|
|
1273
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00946">SVFIR2ItvExeState.cpp:946</a></div></div>
|
|
1274
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00227">IntervalValue.h:227</a></div></div>
|
|
1275
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad53e6d2fc9d1410df236584bb66c585a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad53e6d2fc9d1410df236584bb66c585a">SVF::SVFIR2ItvExeState::getFPToSIntValue</a></div><div class="ttdeci">IntervalValue getFPToSIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00162">SVFIR2ItvExeState.cpp:162</a></div></div>
|
|
1276
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00921">SVFStatements.h:921</a></div></div>
|
|
1077
1277
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_ad2288306aed7301ccd30e55410c7b428"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">SVF::IntervalESBase::_varToItvVal</a></div><div class="ttdeci">VarToValMap _varToItvVal</div><div class="ttdoc">Map a variable (symbol) to its interval value.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00147">IntervalExeState.h:147</a></div></div>
|
|
1078
1278
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html">SVF::IntervalExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00407">IntervalExeState.h:407</a></div></div>
|
|
1079
|
-
<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#
|
|
1080
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1081
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1279
|
+
<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#l00931">SVFStatements.h:931</a></div></div>
|
|
1280
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00918">SVFStatements.h:918</a></div></div>
|
|
1281
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00923">SVFStatements.h:923</a></div></div>
|
|
1082
1282
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
1083
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6e4e3eeca9d25fb5eab496faeb6264c3"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">IntervalValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1283
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6e4e3eeca9d25fb5eab496faeb6264c3"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">IntervalValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00507">SVFIR2ItvExeState.cpp:507</a></div></div>
|
|
1284
|
+
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_aa69f9536301d6529eb1d0caaec2fcc63"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">SVF::NumericLiteral::getRealNumeral</a></div><div class="ttdeci">double getRealNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00143">NumericLiteral.h:143</a></div></div>
|
|
1084
1285
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a92b1b163493a74a31d30a261128edd05"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">SVF::IntervalExeState::globalES</a></div><div class="ttdeci">static IntervalExeState globalES</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00413">IntervalExeState.h:413</a></div></div>
|
|
1085
|
-
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1286
|
+
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00447">SVFStatements.h:447</a></div></div>
|
|
1287
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">SVF::CopyStmt::TRUNC</a></div><div class="ttdeci">@ TRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
|
|
1288
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aaeef5c66931c38f2ea2002b53b255530"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aaeef5c66931c38f2ea2002b53b255530">SVF::SVFIR2ItvExeState::getUIntToFPValue</a></div><div class="ttdeci">IntervalValue getUIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00209">SVFIR2ItvExeState.cpp:209</a></div></div>
|
|
1086
1289
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
|
|
1087
1290
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00177">AddressValue.h:177</a></div></div>
|
|
1088
1291
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00080">SymbolTableInfo.cpp:80</a></div></div>
|
|
1089
1292
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
1090
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1293
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00975">SVFIR2ItvExeState.cpp:975</a></div></div>
|
|
1091
1294
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00290">SVFStatements.h:290</a></div></div>
|
|
1092
1295
|
<div class="ttc" id="aclassSVF_1_1ExeState_html_ad317f2ae2e599a131a6fd9f415f5d712"><div class="ttname"><a href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">SVF::ExeState::_varToAddrs</a></div><div class="ttdeci">VarToAddrs _varToAddrs</div><div class="ttdoc">Map a variable (symbol) to its memory addresses.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00096">ExeState.h:96</a></div></div>
|
|
1093
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1094
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1296
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00523">SVFStatements.h:523</a></div></div>
|
|
1297
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00295">SVFIR2ItvExeState.cpp:295</a></div></div>
|
|
1095
1298
|
<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="GeneralType_8h_source.html#l00047">GeneralType.h:47</a></div></div>
|
|
1096
1299
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00115">AddressValue.h:115</a></div></div>
|
|
1097
1300
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a2f70e9c830b18f25c56b530722f106c4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">SVF::MemObj::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get the reference value to this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00406">SymbolTableInfo.h:406</a></div></div>
|
|
1098
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1301
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00484">SVFStatements.h:484</a></div></div>
|
|
1099
1302
|
<div class="ttc" id="aclassSVF_1_1Options_html_a429c3000ee2ac45119b8c241aa06762c"><div class="ttname"><a href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">SVF::Options::ModelArrays</a></div><div class="ttdeci">static const Option< bool > ModelArrays</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00207">Options.h:207</a></div></div>
|
|
1100
1303
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a40c67147606ab95dd3318d0fe821d8c0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">SVF::AddressValue::insert</a></div><div class="ttdeci">std::pair< AddressValue::AddrSet::iterator, bool > insert(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00125">AddressValue.h:125</a></div></div>
|
|
1101
|
-
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1304
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00999">SVFStatements.h:999</a></div></div>
|
|
1102
1305
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa027be2f9243ce4cae799b265b019443"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">SVF::IntervalValue::bottom</a></div><div class="ttdeci">static IntervalValue bottom()</div><div class="ttdoc">Create the bottom IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00089">IntervalValue.h:89</a></div></div>
|
|
1103
|
-
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a1dd264b9f3b43d04aa1396443ad6ad33"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">APOffset accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1104
|
-
<div class="ttc" id="
|
|
1306
|
+
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a1dd264b9f3b43d04aa1396443ad6ad33"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">APOffset accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00538">SVFStatements.h:538</a></div></div>
|
|
1307
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">SVF::CopyStmt::UITOFP</a></div><div class="ttdeci">@ UITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00375">SVFStatements.h:375</a></div></div>
|
|
1308
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">SVF::CmpStmt::FCMP_OGE</a></div><div class="ttdeci">@ FCMP_OGE</div><div class="ttdoc">0 0 1 1 True if ordered and greater than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00915">SVFStatements.h:915</a></div></div>
|
|
1105
1309
|
<div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
|
|
1106
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1310
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00922">SVFStatements.h:922</a></div></div>
|
|
1107
1311
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a1579525f7cf7779aba58c4bdde2be4b0"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a1579525f7cf7779aba58c4bdde2be4b0">SVF::SVFIR2ItvExeState::globalNulladdrs</a></div><div class="ttdeci">static Addrs globalNulladdrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00048">SVFIR2ItvExeState.h:48</a></div></div>
|
|
1108
|
-
<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#
|
|
1312
|
+
<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#l01006">SVFStatements.h:1006</a></div></div>
|
|
1313
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">SVF::CopyStmt::SITOFP</a></div><div class="ttdeci">@ SITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00375">SVFStatements.h:375</a></div></div>
|
|
1109
1314
|
<div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00291">SVFType.h:291</a></div></div>
|
|
1110
|
-
<div class="ttc" id="
|
|
1315
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a5d65dbc9a43181494a32d41a03065685"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a5d65dbc9a43181494a32d41a03065685">SVF::SVFIR2ItvExeState::getSExtValue</a></div><div class="ttdeci">IntervalValue getSExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00157">SVFIR2ItvExeState.cpp:157</a></div></div>
|
|
1316
|
+
<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#l00932">SVFStatements.h:932</a></div></div>
|
|
1317
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a9cd033e4586788de716f41875ab2b87f"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a9cd033e4586788de716f41875ab2b87f">SVF::SVFIR2ItvExeState::getZExtValue</a></div><div class="ttdeci">IntervalValue getZExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00112">SVFIR2ItvExeState.cpp:112</a></div></div>
|
|
1111
1318
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00496">SymbolTableInfo.cpp:496</a></div></div>
|
|
1112
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1319
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00969">SVFStatements.h:969</a></div></div>
|
|
1113
1320
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html"><div class="ttname"><a href="classSVF_1_1AddressValue.html">SVF::AddressValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00043">AddressValue.h:43</a></div></div>
|
|
1114
|
-
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1115
|
-
<div class="ttc" id="
|
|
1321
|
+
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00881">SVFStatements.h:881</a></div></div>
|
|
1322
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a15dbee007f3afb718a202f50fa87177f"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a15dbee007f3afb718a202f50fa87177f">SVF::SVFIR2ItvExeState::getTruncValue</a></div><div class="ttdeci">IntervalValue getTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00220">SVFIR2ItvExeState.cpp:220</a></div></div>
|
|
1323
|
+
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a8e19113913c2aa236ab35d3bdd49541c"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">SVF::NumericLiteral::getIntNumeral</a></div><div class="ttdeci">s64_t getIntNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00148">NumericLiteral.h:148</a></div></div>
|
|
1324
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00614">SVFIR2ItvExeState.cpp:614</a></div></div>
|
|
1116
1325
|
<div class="ttc" id="acJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
|
|
1117
|
-
<div class="ttc" id="
|
|
1326
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">SVF::CopyStmt::FPTOSI</a></div><div class="ttdeci">@ FPTOSI</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00375">SVFStatements.h:375</a></div></div>
|
|
1327
|
+
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01039">SVFStatements.h:1039</a></div></div>
|
|
1328
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad3b0ac993ccfb0846f62aeb5eaf62b30"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad3b0ac993ccfb0846f62aeb5eaf62b30">SVF::SVFIR2ItvExeState::getSIntToFPValue</a></div><div class="ttdeci">IntervalValue getSIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00198">SVFIR2ItvExeState.cpp:198</a></div></div>
|
|
1118
1329
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00353">SVFVariables.h:353</a></div></div>
|
|
1119
1330
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
1120
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1331
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00582">SVFIR2ItvExeState.cpp:582</a></div></div>
|
|
1121
1332
|
<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>
|
|
1122
|
-
<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#
|
|
1333
|
+
<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#l01003">SVFStatements.h:1003</a></div></div>
|
|
1123
1334
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
1124
|
-
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1335
|
+
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
|
|
1125
1336
|
<div class="ttc" id="aclassSVF_1_1ExeState_html_a79866a547dc4805d3fefdfd528d2df2a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">SVF::ExeState::_locToAddrs</a></div><div class="ttdeci">VarToAddrs _locToAddrs</div><div class="ttdoc">Map a memory address to its stored memory addresses.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00097">ExeState.h:97</a></div></div>
|
|
1126
1337
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
|
|
1127
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af8d06156bcbb61beb305ed8096319966"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">Addrs getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1128
|
-
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
1338
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af8d06156bcbb61beb305ed8096319966"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">Addrs getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00394">SVFIR2ItvExeState.cpp:394</a></div></div>
|
|
1339
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00940">SVFStatements.h:940</a></div></div>
|
|
1129
1340
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
1130
1341
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1131
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a103b55536f1cec38edb2f169d3f94675"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a103b55536f1cec38edb2f169d3f94675">SVF::SVFIR2ItvExeState::narrowAddrs</a></div><div class="ttdeci">void narrowAddrs(IntervalExeState &lhs, const IntervalExeState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1342
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a103b55536f1cec38edb2f169d3f94675"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a103b55536f1cec38edb2f169d3f94675">SVF::SVFIR2ItvExeState::narrowAddrs</a></div><div class="ttdeci">void narrowAddrs(IntervalExeState &lhs, const IntervalExeState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00360">SVFIR2ItvExeState.cpp:360</a></div></div>
|
|
1132
1343
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ab6f95d3e7e099d75cfc9645ebc037047"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const SVFType * getType() const</div><div class="ttdoc">Return type of the value.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
|
|
1133
|
-
<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#
|
|
1344
|
+
<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#l00938">SVFStatements.h:938</a></div></div>
|
|
1134
1345
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00289">SVFStatements.cpp:289</a></div></div>
|
|
1135
1346
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a04456fe47889dd8f1b712255c9598fe9"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">SVF::AddressValue::equals</a></div><div class="ttdeci">bool equals(const AddressValue &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00089">AddressValue.h:89</a></div></div>
|
|
1136
1347
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00049">GeneralType.h:49</a></div></div>
|
|
1348
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a25165fdbe2b56b34ee8ab094bbe89494"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a25165fdbe2b56b34ee8ab094bbe89494">SVF::SVFIR2ItvExeState::getFPToUIntValue</a></div><div class="ttdeci">IntervalValue getFPToUIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00180">SVFIR2ItvExeState.cpp:180</a></div></div>
|
|
1349
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">SVF::CopyStmt::ZEXT</a></div><div class="ttdeci">@ ZEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
|
|
1137
1350
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
1138
|
-
<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#
|
|
1139
|
-
<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#
|
|
1140
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
1141
|
-
<div class="ttc" id="
|
|
1351
|
+
<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#l00933">SVFStatements.h:933</a></div></div>
|
|
1352
|
+
<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#l01011">SVFStatements.h:1011</a></div></div>
|
|
1353
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00397">IntervalValue.h:397</a></div></div>
|
|
1354
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">SVF::CopyStmt::COPYVAL</a></div><div class="ttdeci">@ COPYVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
|
|
1355
|
+
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00927">SVFStatements.h:927</a></div></div>
|
|
1142
1356
|
<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="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
|
|
1143
1357
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a55e5fd85f232c1867c5c6a73646d53eb"><div class="ttname"><a href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">SVF::StInfo::getFlattenedElemIdxVec</a></div><div class="ttdeci">std::vector< u32_t > & getFlattenedElemIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00098">SVFType.h:98</a></div></div>
|
|
1144
1358
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00491">SymbolTableInfo.cpp:491</a></div></div>
|
|
1145
|
-
<div class="ttc" id="
|
|
1146
|
-
<div class="ttc" id="
|
|
1359
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c">SVF::CopyStmt::FPTOUI</a></div><div class="ttdeci">@ FPTOUI</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00375">SVFStatements.h:375</a></div></div>
|
|
1360
|
+
<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#l00996">SVFStatements.h:996</a></div></div>
|
|
1361
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a198fd724be35f415851a2467c3930f76"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a198fd724be35f415851a2467c3930f76">SVF::SVFIR2ItvExeState::widenAddrs</a></div><div class="ttdeci">void widenAddrs(IntervalExeState &lhs, const IntervalExeState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00322">SVFIR2ItvExeState.cpp:322</a></div></div>
|
|
1147
1362
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00105">AddressValue.h:105</a></div></div>
|
|
1148
1363
|
<!-- start footer part -->
|
|
1149
1364
|
<hr class="footer"/><address class="footer"><small>
|