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
|
@@ -90,8 +90,8 @@ Public Member Functions</h2></td></tr>
|
|
|
90
90
|
<tr class="separator:aff6752947e73cd0559b5a340547c9016"><td class="memSeparator" colspan="2"> </td></tr>
|
|
91
91
|
<tr class="memitem:a012d18ece2c66ba6e784ae9578171369"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &lower, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &upper, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &domain) const</td></tr>
|
|
92
92
|
<tr class="separator:a012d18ece2c66ba6e784ae9578171369"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
|
-
<tr class="memitem:
|
|
94
|
-
<tr class="separator:
|
|
93
|
+
<tr class="memitem:ac4abc5e1eb3b638710572c958162c22c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a> (const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> > &sigma, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &exeState) const</td></tr>
|
|
94
|
+
<tr class="separator:ac4abc5e1eb3b638710572c958162c22c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
95
|
<tr class="memitem:af621897ab66f6475d5ee043ef2e33623"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId) const</td></tr>
|
|
96
96
|
<tr class="memdesc:af621897ab66f6475d5ee043ef2e33623"><td class="mdescLeft"> </td><td class="mdescRight">Return Z3 expression lazily based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID. <a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">More...</a><br /></td></tr>
|
|
97
97
|
<tr class="separator:af621897ab66f6475d5ee043ef2e33623"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -176,35 +176,35 @@ Public Member Functions</h2></td></tr>
|
|
|
176
176
|
<p>return proposed</p>
|
|
177
177
|
<p>return lower.copy()</p>
|
|
178
178
|
|
|
179
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
180
|
-
<div class="fragment"><div class="line"><a name="
|
|
181
|
-
<div class="line"><a name="
|
|
182
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"></span> </div>
|
|
183
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> The abstract consequence must be a superset of lower and *NOT* a</span></div>
|
|
184
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"> superset of upper.</span></div>
|
|
179
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00170">170</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
180
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div>
|
|
181
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">/*Returns the "abstract consequence" of lower and upper.</span></div>
|
|
185
182
|
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment"></span> </div>
|
|
186
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">
|
|
187
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">
|
|
188
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">
|
|
189
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">
|
|
190
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
191
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
192
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
200
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
201
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
202
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
|
|
183
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"> The abstract consequence must be a superset of lower and *NOT* a</span></div>
|
|
184
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment"> superset of upper.</span></div>
|
|
185
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"></span> </div>
|
|
186
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> Note that this is a fairly "simple" abstract consequence, in that it</span></div>
|
|
187
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"> sets only one variable to a non-top interval. This improves performance</span></div>
|
|
188
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> of the SMT solver in many cases. In certain cases, other choices for</span></div>
|
|
189
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> the abstract consequence will lead to better algorithm performance.*/</span></div>
|
|
190
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
|
|
191
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().begin();</div>
|
|
192
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  it != domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end(); ++it)</div>
|
|
193
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
|
194
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> proposed = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>(); </div>
|
|
195
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  proposed.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[it->first] = lower.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(it->first);</div>
|
|
196
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span> (!(proposed >= upper)) </div>
|
|
197
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
198
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> proposed; </div>
|
|
199
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
200
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
201
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> lower; </div>
|
|
202
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div>
|
|
203
203
|
</div><!-- fragment -->
|
|
204
204
|
</div>
|
|
205
205
|
</div>
|
|
206
|
-
<a id="
|
|
207
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
206
|
+
<a id="ac4abc5e1eb3b638710572c958162c22c"></a>
|
|
207
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac4abc5e1eb3b638710572c958162c22c">◆ </a></span>beta()</h2>
|
|
208
208
|
|
|
209
209
|
<div class="memitem">
|
|
210
210
|
<div class="memproto">
|
|
@@ -212,7 +212,7 @@ Public Member Functions</h2></td></tr>
|
|
|
212
212
|
<tr>
|
|
213
213
|
<td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::beta </td>
|
|
214
214
|
<td>(</td>
|
|
215
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>,
|
|
215
|
+
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> > & </td>
|
|
216
216
|
<td class="paramname"><em>sigma</em>, </td>
|
|
217
217
|
</tr>
|
|
218
218
|
<tr>
|
|
@@ -229,16 +229,16 @@ Public Member Functions</h2></td></tr>
|
|
|
229
229
|
</table>
|
|
230
230
|
</div><div class="memdoc">
|
|
231
231
|
|
|
232
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
233
|
-
<div class="fragment"><div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="
|
|
237
|
-
<div class="line"><a name="
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="
|
|
241
|
-
<div class="line"><a name="
|
|
232
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00244">244</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
233
|
+
<div class="fragment"><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> {</div>
|
|
234
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> res;</div>
|
|
235
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</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> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
236
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div>
|
|
237
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  res.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(</div>
|
|
238
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first), sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first));</div>
|
|
239
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div>
|
|
240
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">return</span> res;</div>
|
|
241
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
|
242
242
|
</div><!-- fragment -->
|
|
243
243
|
</div>
|
|
244
244
|
</div>
|
|
@@ -281,76 +281,76 @@ Public Member Functions</h2></td></tr>
|
|
|
281
281
|
<p>unknown or unsat</p>
|
|
282
282
|
<p>for timeout reason return upper</p>
|
|
283
283
|
|
|
284
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
285
|
-
<div class="fragment"><div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="
|
|
291
|
-
<div class="line"><a name="
|
|
292
|
-
<div class="line"><a name="
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
299
|
-
<div class="line"><a name="
|
|
300
|
-
<div class="line"><a name="
|
|
301
|
-
<div class="line"><a name="
|
|
302
|
-
<div class="line"><a name="
|
|
303
|
-
<div class="line"><a name="
|
|
304
|
-
<div class="line"><a name="
|
|
305
|
-
<div class="line"><a name="
|
|
306
|
-
<div class="line"><a name="
|
|
307
|
-
<div class="line"><a name="
|
|
308
|
-
<div class="line"><a name="
|
|
309
|
-
<div class="line"><a name="
|
|
310
|
-
<div class="line"><a name="
|
|
311
|
-
<div class="line"><a name="
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
284
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00036">36</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
285
|
+
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
|
|
286
|
+
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> upper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
287
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
288
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> meets_in_a_row = 0;</div>
|
|
289
|
+
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  z3::solver solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
|
|
290
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
|
|
291
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">":timeout"</span>, <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(600)); <span class="comment">// in milliseconds</span></div>
|
|
292
|
+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
|
|
293
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> consequence;</div>
|
|
294
|
+
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
|
295
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">while</span> (lower != upper)</div>
|
|
296
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
|
|
297
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span> (meets_in_a_row == descend_check)</div>
|
|
298
|
+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div>
|
|
299
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  consequence = lower;</div>
|
|
300
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
|
301
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span></div>
|
|
302
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
|
|
303
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  consequence = <a class="code" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a>(lower, upper, domain);</div>
|
|
304
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
|
|
305
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(consequence, domain));</div>
|
|
306
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  solver.push();</div>
|
|
307
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() && rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
308
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, s32_t></a> solution;</div>
|
|
309
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  z3::check_result checkRes = solver.check();</div>
|
|
310
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">if</span> (checkRes == z3::sat)</div>
|
|
311
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
|
312
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  z3::model m = solver.get_model();</div>
|
|
313
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i < m.size(); i++)</div>
|
|
314
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div>
|
|
315
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  z3::func_decl v = m[i];</div>
|
|
316
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// assert(v.arity() == 0);</span></div>
|
|
317
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (v.arity() != 0)</div>
|
|
318
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">continue</span>;</div>
|
|
319
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  solution.emplace(std::stoi(v.name().str()),</div>
|
|
320
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  m.get_const_interp(v).get_numeral_int());</div>
|
|
321
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div>
|
|
322
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</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> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
323
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div>
|
|
324
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
|
|
325
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
|
|
326
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  solution.emplace(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, 0);</div>
|
|
327
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
|
328
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div>
|
|
329
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  solver.pop();</div>
|
|
330
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
331
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
|
|
332
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> rhs = <a class="code" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a>(solution, domain);</div>
|
|
333
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(rhs);</div>
|
|
334
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  lower = newLower;</div>
|
|
335
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  meets_in_a_row = 0;</div>
|
|
336
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
|
337
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">else</span> </div>
|
|
338
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div>
|
|
339
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  solver.pop();</div>
|
|
340
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (checkRes == z3::unknown)</div>
|
|
341
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
|
|
342
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">"timeout"</span>)</div>
|
|
343
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> upper;</div>
|
|
344
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
345
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newUpper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
346
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(upper);</div>
|
|
347
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(consequence);</div>
|
|
348
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  upper = newUpper;</div>
|
|
349
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  meets_in_a_row += 1;</div>
|
|
350
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
351
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
|
352
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> upper;</div>
|
|
353
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div>
|
|
354
354
|
</div><!-- fragment -->
|
|
355
355
|
</div>
|
|
356
356
|
</div>
|
|
@@ -393,31 +393,31 @@ Public Member Functions</h2></td></tr>
|
|
|
393
393
|
</div><div class="memdoc">
|
|
394
394
|
<p>this is the S in the original paper</p>
|
|
395
395
|
|
|
396
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
397
|
-
<div class="fragment"><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="
|
|
396
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00336">336</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
397
|
+
<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> {</div>
|
|
398
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, Z3Expr></a> L_phi;</div>
|
|
399
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, NumericLiteral></a> mid_values;</div>
|
|
400
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">while</span> (1)</div>
|
|
401
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
|
402
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  L_phi.clear();</div>
|
|
403
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</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> : ret)</div>
|
|
404
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div>
|
|
405
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
|
|
406
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span> (low_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first).leq(high_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)))</div>
|
|
407
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div>
|
|
408
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> mid = (low_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) + (high_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) - low_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)) / 2);</div>
|
|
409
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(mid_values, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, mid);</div>
|
|
410
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> expr = (mid.<a class="code" href="classSVF_1_1NumericLiteral.html#ac2994e13c3572b114c57a9bb4f155d67">getExpr</a>() <= v && v <= high_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first).<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
411
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  L_phi[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = expr;</div>
|
|
412
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div>
|
|
413
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
|
414
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (L_phi.empty())</div>
|
|
415
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">break</span>;</div>
|
|
416
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">else</span></div>
|
|
417
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">decide_cpa_ext</a>(phi, L_phi, mid_values, ret, low_values, high_values);</div>
|
|
418
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div>
|
|
419
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">return</span> ret;</div>
|
|
420
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> }</div>
|
|
421
421
|
</div><!-- fragment -->
|
|
422
422
|
</div>
|
|
423
423
|
</div>
|
|
@@ -453,63 +453,65 @@ Public Member Functions</h2></td></tr>
|
|
|
453
453
|
<p>optimize each object</p>
|
|
454
454
|
<p>fill in the return values</p>
|
|
455
455
|
|
|
456
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
457
|
-
<div class="fragment"><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="
|
|
456
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00269">269</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
457
|
+
<div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div>
|
|
458
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> bias = 0;</div>
|
|
459
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> infinity = INT32_MAX - 1;</div>
|
|
460
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div>
|
|
461
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// int infinity = (INT32_MAX) - 1;</span></div>
|
|
462
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// int infinity = 20;</span></div>
|
|
463
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, NumericLiteral></a> ret;</div>
|
|
464
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, NumericLiteral></a> low_values, high_values;</div>
|
|
465
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> new_phi = phi;</div>
|
|
466
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</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>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
467
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div>
|
|
468
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub());</div>
|
|
469
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb().is_minus_infinity())</div>
|
|
470
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(low_values, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, -infinity);</div>
|
|
471
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">else</span></div>
|
|
472
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(low_values, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
|
|
473
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub().is_plus_infinity())</div>
|
|
474
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(high_values, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, infinity);</div>
|
|
475
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span></div>
|
|
476
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(high_values, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub());</div>
|
|
477
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first > bias)</div>
|
|
478
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  bias = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + 1;</div>
|
|
479
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
480
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</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>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
481
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div>
|
|
482
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> reverse_key = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + bias;</div>
|
|
483
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
|
|
484
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub().is_plus_infinity())</div>
|
|
485
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(low_values, reverse_key, -infinity);</div>
|
|
486
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">else</span></div>
|
|
487
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(low_values, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub());</div>
|
|
488
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb().is_minus_infinity())</div>
|
|
489
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(high_values, reverse_key, infinity);</div>
|
|
490
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">else</span></div>
|
|
491
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(high_values, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
|
|
492
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  new_phi = (new_phi && (<a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(reverse_key) == -1 * <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)));</div>
|
|
493
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div>
|
|
494
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">BoxedOptSolver</a>(new_phi.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>(), ret, low_values, high_values);</div>
|
|
495
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> retInv;</div>
|
|
496
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</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>: ret)</div>
|
|
497
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div>
|
|
498
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first >= bias)</div>
|
|
499
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div>
|
|
500
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
|
|
501
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">"-oo"</span>));</div>
|
|
502
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">else</span></div>
|
|
503
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(-<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
|
|
504
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
|
|
505
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">else</span></div>
|
|
506
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  {</div>
|
|
507
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
|
|
508
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">"+oo"</span>));</div>
|
|
509
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">else</span></div>
|
|
510
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
|
|
511
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div>
|
|
512
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div>
|
|
513
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">return</span> retInv;</div>
|
|
514
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> }</div>
|
|
513
515
|
</div><!-- fragment -->
|
|
514
516
|
</div>
|
|
515
517
|
</div>
|
|
@@ -566,57 +568,57 @@ Public Member Functions</h2></td></tr>
|
|
|
566
568
|
<p>id is the var id, value is the solution found for var_id add a relation to check if the solution meets phi_id</p>
|
|
567
569
|
<p>unknown or unsat, we consider unknown as unsat</p>
|
|
568
570
|
|
|
569
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
570
|
-
<div class="fragment"><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="
|
|
571
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00364">364</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
572
|
+
<div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> {</div>
|
|
573
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">while</span> (1)</div>
|
|
574
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  {</div>
|
|
575
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> join_expr(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>));</div>
|
|
576
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</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> : L_phi)</div>
|
|
577
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  join_expr = (join_expr || <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
|
|
578
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  join_expr = (join_expr && phi).simplify();</div>
|
|
579
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  z3::solver& solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
|
|
580
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  solver.push();</div>
|
|
581
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  solver.add(join_expr.getExpr());</div>
|
|
582
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, double></a> solution;</div>
|
|
583
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  z3::check_result checkRes = solver.check();</div>
|
|
584
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">if</span> (checkRes == z3::sat)</div>
|
|
585
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div>
|
|
586
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  z3::model m = solver.get_model();</div>
|
|
587
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  solver.pop();</div>
|
|
588
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</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> : L_phi)</div>
|
|
589
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div>
|
|
590
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> <span class="keywordtype">id</span> = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first;</div>
|
|
591
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">int</span> value = m.eval(<a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>).getExpr()).get_numeral_int();</div>
|
|
592
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="comment">// int value = m.eval(Z3Expr::getContext().int_const(std::to_string(id).c_str())).get_numeral_int();</span></div>
|
|
593
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment"></span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> expr = (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second && <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>) == value);</div>
|
|
594
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  solver.push();</div>
|
|
595
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  solver.add(expr.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
596
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="comment">// solution meets phi_id</span></div>
|
|
597
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">if</span> (solver.check() == z3::sat)</div>
|
|
598
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div>
|
|
599
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a>(value));</div>
|
|
600
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(low_values, <span class="keywordtype">id</span>, ret.at(<span class="keywordtype">id</span>) + 1);</div>
|
|
601
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
|
602
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> mid = (low_values.at(<span class="keywordtype">id</span>) + high_values.at(<span class="keywordtype">id</span>) + 1) / 2;</div>
|
|
603
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(mid_values, <span class="keywordtype">id</span>, mid);</div>
|
|
604
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>);</div>
|
|
605
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="comment">// Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());</span></div>
|
|
606
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> expr = (mid_values.at(<span class="keywordtype">id</span>).getExpr() <= v && v <= high_values.at(<span class="keywordtype">id</span>).<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
607
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  L_phi[id] = expr;</div>
|
|
608
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div>
|
|
609
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  solver.pop();</div>
|
|
610
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div>
|
|
611
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div>
|
|
612
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">else</span> </div>
|
|
613
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  {</div>
|
|
614
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  solver.pop();</div>
|
|
615
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</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> : L_phi)</div>
|
|
616
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  high_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) = mid_values.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) - 1;</div>
|
|
617
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span>;</div>
|
|
618
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div>
|
|
619
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
|
|
620
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
|
621
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> }</div>
|
|
620
622
|
</div><!-- fragment -->
|
|
621
623
|
</div>
|
|
622
624
|
</div>
|
|
@@ -648,22 +650,22 @@ Public Member Functions</h2></td></tr>
|
|
|
648
650
|
|
|
649
651
|
<p>Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to another valToValMap. </p>
|
|
650
652
|
|
|
651
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
652
|
-
<div class="fragment"><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="
|
|
653
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00215">215</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
654
|
+
<div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> {</div>
|
|
655
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
|
|
656
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
657
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div>
|
|
658
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> interval = alpha.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
|
|
659
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
660
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
|
|
661
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
|
|
662
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">continue</span>;</div>
|
|
663
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
|
|
664
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  res = (res && v >= (int)interval.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &&</div>
|
|
665
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  v <= (int)interval.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>()).simplify();</div>
|
|
666
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  }</div>
|
|
667
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> res;</div>
|
|
668
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> }</div>
|
|
667
669
|
</div><!-- fragment -->
|
|
668
670
|
</div>
|
|
669
671
|
</div>
|
|
@@ -685,21 +687,21 @@ Public Member Functions</h2></td></tr>
|
|
|
685
687
|
|
|
686
688
|
<p>Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to valToValMap. </p>
|
|
687
689
|
|
|
688
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
689
|
-
<div class="fragment"><div class="line"><a name="
|
|
690
|
-
<div class="line"><a name="
|
|
691
|
-
<div class="line"><a name="
|
|
692
|
-
<div class="line"><a name="
|
|
693
|
-
<div class="line"><a name="
|
|
694
|
-
<div class="line"><a name="
|
|
695
|
-
<div class="line"><a name="
|
|
696
|
-
<div class="line"><a name="
|
|
697
|
-
<div class="line"><a name="
|
|
698
|
-
<div class="line"><a name="
|
|
699
|
-
<div class="line"><a name="
|
|
700
|
-
<div class="line"><a name="
|
|
701
|
-
<div class="line"><a name="
|
|
702
|
-
<div class="line"><a name="
|
|
690
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00199">199</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
691
|
+
<div class="fragment"><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> {</div>
|
|
692
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
|
|
693
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
694
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div>
|
|
695
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.isBottom())</div>
|
|
696
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
|
|
697
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.isTop())</div>
|
|
698
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">continue</span>;</div>
|
|
699
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
|
|
700
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  res = (res && v >= (int)<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb().getNumeral() &&</div>
|
|
701
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  v <= (int)<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub().getNumeral()).simplify();</div>
|
|
702
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
703
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> res;</div>
|
|
704
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> }</div>
|
|
703
705
|
</div><!-- fragment -->
|
|
704
706
|
</div>
|
|
705
707
|
</div>
|
|
@@ -731,16 +733,16 @@ Public Member Functions</h2></td></tr>
|
|
|
731
733
|
|
|
732
734
|
<p>Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> from a NodeID. </p>
|
|
733
735
|
|
|
734
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
735
|
-
<div class="fragment"><div class="line"><a name="
|
|
736
|
-
<div class="line"><a name="
|
|
737
|
-
<div class="line"><a name="
|
|
738
|
-
<div class="line"><a name="
|
|
739
|
-
<div class="line"><a name="
|
|
740
|
-
<div class="line"><a name="
|
|
741
|
-
<div class="line"><a name="
|
|
742
|
-
<div class="line"><a name="
|
|
743
|
-
<div class="line"><a name="
|
|
736
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00233">233</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
737
|
+
<div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div>
|
|
738
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">auto</span> it = exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().find(<span class="keywordtype">id</span>);</div>
|
|
739
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  assert(it != exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end() && <span class="stringliteral">"id not in varToVal?"</span>);</div>
|
|
740
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>);</div>
|
|
741
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());</span></div>
|
|
742
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res = (v >= (int)it->second.lb().getNumeral() &&</div>
|
|
743
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  v <= (int)it->second.ub().getNumeral());</div>
|
|
744
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">return</span> res;</div>
|
|
745
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> }</div>
|
|
744
746
|
</div><!-- fragment -->
|
|
745
747
|
</div>
|
|
746
748
|
</div>
|
|
@@ -774,58 +776,58 @@ Public Member Functions</h2></td></tr>
|
|
|
774
776
|
<p>unknown or unsat</p>
|
|
775
777
|
<p>for timeout reason return upper</p>
|
|
776
778
|
|
|
777
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
778
|
-
<div class="fragment"><div class="line"><a name="
|
|
779
|
-
<div class="line"><a name="
|
|
780
|
-
<div class="line"><a name="
|
|
781
|
-
<div class="line"><a name="
|
|
782
|
-
<div class="line"><a name="
|
|
783
|
-
<div class="line"><a name="
|
|
784
|
-
<div class="line"><a name="
|
|
785
|
-
<div class="line"><a name="
|
|
786
|
-
<div class="line"><a name="
|
|
787
|
-
<div class="line"><a name="
|
|
788
|
-
<div class="line"><a name="
|
|
789
|
-
<div class="line"><a name="
|
|
790
|
-
<div class="line"><a name="
|
|
791
|
-
<div class="line"><a name="
|
|
792
|
-
<div class="line"><a name="
|
|
793
|
-
<div class="line"><a name="
|
|
794
|
-
<div class="line"><a name="
|
|
795
|
-
<div class="line"><a name="
|
|
796
|
-
<div class="line"><a name="
|
|
797
|
-
<div class="line"><a name="
|
|
798
|
-
<div class="line"><a name="
|
|
799
|
-
<div class="line"><a name="
|
|
800
|
-
<div class="line"><a name="
|
|
801
|
-
<div class="line"><a name="
|
|
802
|
-
<div class="line"><a name="
|
|
803
|
-
<div class="line"><a name="
|
|
804
|
-
<div class="line"><a name="
|
|
805
|
-
<div class="line"><a name="
|
|
806
|
-
<div class="line"><a name="
|
|
807
|
-
<div class="line"><a name="
|
|
808
|
-
<div class="line"><a name="
|
|
809
|
-
<div class="line"><a name="
|
|
810
|
-
<div class="line"><a name="
|
|
811
|
-
<div class="line"><a name="
|
|
812
|
-
<div class="line"><a name="
|
|
813
|
-
<div class="line"><a name="
|
|
814
|
-
<div class="line"><a name="
|
|
815
|
-
<div class="line"><a name="
|
|
816
|
-
<div class="line"><a name="
|
|
817
|
-
<div class="line"><a name="
|
|
818
|
-
<div class="line"><a name="
|
|
819
|
-
<div class="line"><a name="
|
|
820
|
-
<div class="line"><a name="
|
|
821
|
-
<div class="line"><a name="
|
|
822
|
-
<div class="line"><a name="
|
|
823
|
-
<div class="line"><a name="
|
|
824
|
-
<div class="line"><a name="
|
|
825
|
-
<div class="line"><a name="
|
|
826
|
-
<div class="line"><a name="
|
|
827
|
-
<div class="line"><a name="
|
|
828
|
-
<div class="line"><a name="
|
|
779
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00114">114</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
780
|
+
<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div>
|
|
781
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
782
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  z3::solver& solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
|
|
783
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
|
|
784
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">":timeout"</span>, <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(600)); <span class="comment">// in milliseconds</span></div>
|
|
785
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
|
|
786
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">while</span> (1)</div>
|
|
787
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
|
|
788
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(lower, domain));</div>
|
|
789
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  solver.push();</div>
|
|
790
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() && rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
|
|
791
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, s32_t></a> solution;</div>
|
|
792
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  z3::check_result checkRes = solver.check();</div>
|
|
793
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (checkRes == z3::sat)</div>
|
|
794
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div>
|
|
795
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  z3::model m = solver.get_model();</div>
|
|
796
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i < m.size(); i++)</div>
|
|
797
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div>
|
|
798
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  z3::func_decl v = m[i];</div>
|
|
799
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> (v.arity() != 0)</div>
|
|
800
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">continue</span>;</div>
|
|
801
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
|
802
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  solution.emplace(std::stoi(v.name().str()),</div>
|
|
803
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  m.get_const_interp(v).get_numeral_int());</div>
|
|
804
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div>
|
|
805
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</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> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
|
|
806
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div>
|
|
807
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
|
|
808
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div>
|
|
809
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  solution.emplace(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, 0);</div>
|
|
810
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
|
|
811
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div>
|
|
812
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  solver.pop();</div>
|
|
813
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
|
|
814
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
|
|
815
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(<a class="code" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a>(solution, domain));</div>
|
|
816
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  lower = newLower;</div>
|
|
817
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div>
|
|
818
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">else</span> </div>
|
|
819
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div>
|
|
820
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  solver.pop();</div>
|
|
821
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (checkRes == z3::unknown)</div>
|
|
822
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div>
|
|
823
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">"timeout"</span>)</div>
|
|
824
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
|
|
825
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
|
|
826
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">break</span>;</div>
|
|
827
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div>
|
|
828
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div>
|
|
829
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">return</span> lower;</div>
|
|
830
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> }</div>
|
|
829
831
|
</div><!-- fragment -->
|
|
830
832
|
</div>
|
|
831
833
|
</div>
|
|
@@ -894,18 +896,18 @@ Public Member Functions</h2></td></tr>
|
|
|
894
896
|
</table>
|
|
895
897
|
</div><div class="memdoc">
|
|
896
898
|
|
|
897
|
-
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#
|
|
898
|
-
<div class="fragment"><div class="line"><a name="
|
|
899
|
-
<div class="line"><a name="
|
|
900
|
-
<div class="line"><a name="
|
|
901
|
-
<div class="line"><a name="
|
|
902
|
-
<div class="line"><a name="
|
|
903
|
-
<div class="line"><a name="
|
|
904
|
-
<div class="line"><a name="
|
|
905
|
-
<div class="line"><a name="
|
|
906
|
-
<div class="line"><a name="
|
|
907
|
-
<div class="line"><a name="
|
|
908
|
-
<div class="line"><a name="
|
|
899
|
+
<p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00256">256</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
|
|
900
|
+
<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> {</div>
|
|
901
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">auto</span> it = map.find(key);</div>
|
|
902
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span> (it == map.end())</div>
|
|
903
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div>
|
|
904
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  map.emplace(key, value);</div>
|
|
905
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div>
|
|
906
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div>
|
|
907
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div>
|
|
908
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  it->second = value;</div>
|
|
909
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div>
|
|
910
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div>
|
|
909
911
|
</div><!-- fragment -->
|
|
910
912
|
</div>
|
|
911
913
|
</div>
|
|
@@ -916,32 +918,34 @@ Public Member Functions</h2></td></tr>
|
|
|
916
918
|
</div><!-- contents -->
|
|
917
919
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
918
920
|
<div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
919
|
-
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a57c199ba2c3c6a6d44a86e0b1429be55"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#
|
|
920
|
-
<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#
|
|
921
|
+
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a57c199ba2c3c6a6d44a86e0b1429be55"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00086">Z3Expr.h:86</a></div></div>
|
|
922
|
+
<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>
|
|
921
923
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context & getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
|
|
922
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_aaae7ac9ed7d0e17f39948c37b867ada9"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">SVF::RelationSolver::BoxedOptSolver</a></div><div class="ttdeci">Map< u32_t, NumericLiteral > BoxedOptSolver(const Z3Expr &phi, Map< u32_t, NumericLiteral > &ret, Map< u32_t, NumericLiteral > &low_values, Map< u32_t, NumericLiteral > &high_values)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#
|
|
924
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_aaae7ac9ed7d0e17f39948c37b867ada9"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">SVF::RelationSolver::BoxedOptSolver</a></div><div class="ttdeci">Map< u32_t, NumericLiteral > BoxedOptSolver(const Z3Expr &phi, Map< u32_t, NumericLiteral > &ret, Map< u32_t, NumericLiteral > &low_values, Map< u32_t, NumericLiteral > &high_values)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00336">RelationSolver.cpp:336</a></div></div>
|
|
923
925
|
<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>
|
|
924
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a7ace50c6e53a79f0e329badb63570f92"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">SVF::RelationSolver::decide_cpa_ext</a></div><div class="ttdeci">void decide_cpa_ext(const Z3Expr &phi, Map< u32_t, Z3Expr > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#
|
|
926
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a7ace50c6e53a79f0e329badb63570f92"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">SVF::RelationSolver::decide_cpa_ext</a></div><div class="ttdeci">void decide_cpa_ext(const Z3Expr &phi, Map< u32_t, Z3Expr > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &, Map< u32_t, NumericLiteral > &)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00364">RelationSolver.cpp:364</a></div></div>
|
|
925
927
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
|
|
926
|
-
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#
|
|
928
|
+
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral, default type is double in case to support both int and float.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00132">NumericLiteral.h:132</a></div></div>
|
|
927
929
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html">SVF::IntervalESBase</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00054">IntervalExeState.h:54</a></div></div>
|
|
928
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af860063ccaeca043bac84eb9eb2cf80a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const IntervalESBase &exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#
|
|
930
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af860063ccaeca043bac84eb9eb2cf80a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const IntervalESBase &exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00199">RelationSolver.cpp:199</a></div></div>
|
|
929
931
|
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af621897ab66f6475d5ee043ef2e33623"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">SVF::RelationSolver::toZ3Expr</a></div><div class="ttdeci">virtual Z3Expr toZ3Expr(u32_t varId) const</div><div class="ttdoc">Return Z3 expression lazily based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8h_source.html#l00061">RelationSolver.h:61</a></div></div>
|
|
930
|
-
<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#
|
|
932
|
+
<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>
|
|
931
933
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a92a8531c7f12cc6f9117596aa5e534b6"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">SVF::IntervalESBase::meetWith</a></div><div class="ttdeci">void meetWith(const IntervalESBase &other)</div><div class="ttdoc">domain meet with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00164">IntervalExeState.cpp:164</a></div></div>
|
|
932
934
|
<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>
|
|
933
935
|
<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>
|
|
934
|
-
<div class="ttc" id="
|
|
935
|
-
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af00aee55faf18a994dc5558ca4bf4932"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">SVF::RelationSolver::updateMap</a></div><div class="ttdeci">void updateMap(Map< u32_t, NumericLiteral > &map, u32_t key, const NumericLiteral &value)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#
|
|
936
|
+
<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>
|
|
937
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_af00aee55faf18a994dc5558ca4bf4932"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">SVF::RelationSolver::updateMap</a></div><div class="ttdeci">void updateMap(Map< u32_t, NumericLiteral > &map, u32_t key, const NumericLiteral &value)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00256">RelationSolver.cpp:256</a></div></div>
|
|
936
938
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a839e8ee927c1cad86aef3059b41ba2eb"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">SVF::IntervalESBase::bottom</a></div><div class="ttdeci">IntervalESBase bottom() const</div><div class="ttdoc">Set all value bottom.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00113">IntervalExeState.h:113</a></div></div>
|
|
937
|
-
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#
|
|
939
|
+
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00137">Z3Expr.h:137</a></div></div>
|
|
938
940
|
<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>
|
|
939
941
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a977128211266b93e58e298a7ac29a059"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00055">IntervalValue.h:55</a></div></div>
|
|
940
942
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html">SVF::NumericLiteral</a></div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00038">NumericLiteral.h:38</a></div></div>
|
|
941
943
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a903797577ba99ef57879774a3849bbfe"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">SVF::IntervalESBase::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00189">IntervalExeState.h:189</a></div></div>
|
|
942
|
-
<div class="ttc" id="
|
|
943
|
-
<div class="ttc" id="
|
|
944
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_ac4abc5e1eb3b638710572c958162c22c"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">SVF::RelationSolver::beta</a></div><div class="ttdeci">IntervalESBase beta(const Map< u32_t, s32_t > &sigma, const IntervalESBase &exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00244">RelationSolver.cpp:244</a></div></div>
|
|
945
|
+
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00101">GeneralType.h:101</a></div></div>
|
|
946
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a012d18ece2c66ba6e784ae9578171369"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">SVF::RelationSolver::abstract_consequence</a></div><div class="ttdeci">IntervalESBase abstract_consequence(const IntervalESBase &lower, const IntervalESBase &upper, const IntervalESBase &domain) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00170">RelationSolver.cpp:170</a></div></div>
|
|
944
947
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a33fd0e4a654dd4f5b7762b0088e11674"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">SVF::IntervalESBase::top</a></div><div class="ttdeci">IntervalESBase top() const</div><div class="ttdoc">Set all value top.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00124">IntervalExeState.h:124</a></div></div>
|
|
948
|
+
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_ac2994e13c3572b114c57a9bb4f155d67"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ac2994e13c3572b114c57a9bb4f155d67">SVF::NumericLiteral::getExpr</a></div><div class="ttdeci">Z3Expr getExpr() const</div><div class="ttdoc">Return Expr.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00138">NumericLiteral.h:138</a></div></div>
|
|
945
949
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_adc0db607e4c0f117760535df67b91fbd"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">SVF::IntervalESBase::joinWith</a></div><div class="ttdeci">void joinWith(const IntervalESBase &other)</div><div class="ttdoc">domain join with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00113">IntervalExeState.cpp:113</a></div></div>
|
|
946
950
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver & getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00056">Z3Expr.cpp:56</a></div></div>
|
|
947
951
|
<!-- start footer part -->
|