svf-tools 1.0.437 → 1.0.440
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/html/Andersen_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/BDDExpr_8cpp.html +81 -0
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +122 -0
- package/SVF-doxygen/html/html/BDDExpr_8h.html +98 -0
- package/SVF-doxygen/html/html/BDDExpr_8h_source.html +131 -0
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DPItem_8h.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExeState_8cpp.html +82 -0
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +127 -0
- package/SVF-doxygen/html/html/ExeState_8h.html +139 -0
- package/SVF-doxygen/html/html/ExeState_8h_source.html +128 -0
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRAnnotator_8h.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +113 -114
- package/SVF-doxygen/html/html/Options_8h.html +0 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +115 -117
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -24
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SrcSnkSolver_8h.html +96 -0
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +113 -0
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp.html +3 -3
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Z3Expr_8h.html +99 -0
- package/SVF-doxygen/html/html/Z3Expr_8h_source.html +126 -0
- package/SVF-doxygen/html/html/annotated.html +272 -275
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager-members.html +117 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +1318 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +0 -9
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1DPItem.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ExeState-members.html +111 -0
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1173 -0
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +74 -74
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +68 -68
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -103
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +115 -141
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +131 -132
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +86 -86
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +106 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +937 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +46 -15
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1451 -104
- package/SVF-doxygen/html/html/classes.html +96 -96
- package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +2 -0
- package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +2 -0
- package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +4 -4
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +6 -10
- package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +2 -0
- package/SVF-doxygen/html/html/dir_fdb79cd259bf25322a80ea604c9317b5.html +2 -0
- package/SVF-doxygen/html/html/files.html +42 -40
- package/SVF-doxygen/html/html/functions.html +2 -2
- package/SVF-doxygen/html/html/functions_0x7e.html +9 -21
- package/SVF-doxygen/html/html/functions_a.html +8 -16
- package/SVF-doxygen/html/html/functions_b.html +22 -35
- package/SVF-doxygen/html/html/functions_c.html +33 -63
- package/SVF-doxygen/html/html/functions_d.html +3 -6
- package/SVF-doxygen/html/html/functions_e.html +11 -13
- package/SVF-doxygen/html/html/functions_enum.html +0 -6
- package/SVF-doxygen/html/html/functions_eval_b.html +0 -6
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +8 -19
- package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -21
- package/SVF-doxygen/html/html/functions_func_b.html +12 -15
- package/SVF-doxygen/html/html/functions_func_c.html +23 -38
- package/SVF-doxygen/html/html/functions_func_d.html +4 -7
- package/SVF-doxygen/html/html/functions_func_e.html +5 -4
- package/SVF-doxygen/html/html/functions_func_f.html +5 -5
- package/SVF-doxygen/html/html/functions_func_g.html +48 -49
- package/SVF-doxygen/html/html/functions_func_h.html +2 -7
- package/SVF-doxygen/html/html/functions_func_i.html +33 -21
- package/SVF-doxygen/html/html/functions_func_l.html +6 -3
- package/SVF-doxygen/html/html/functions_func_m.html +0 -1
- package/SVF-doxygen/html/html/functions_func_n.html +5 -4
- package/SVF-doxygen/html/html/functions_func_o.html +11 -13
- package/SVF-doxygen/html/html/functions_func_p.html +7 -17
- package/SVF-doxygen/html/html/functions_func_r.html +8 -5
- package/SVF-doxygen/html/html/functions_func_s.html +16 -13
- package/SVF-doxygen/html/html/functions_func_t.html +3 -1
- package/SVF-doxygen/html/html/functions_func_v.html +1 -7
- package/SVF-doxygen/html/html/functions_func_z.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +51 -52
- package/SVF-doxygen/html/html/functions_h.html +3 -8
- package/SVF-doxygen/html/html/functions_i.html +44 -32
- package/SVF-doxygen/html/html/functions_l.html +18 -7
- package/SVF-doxygen/html/html/functions_m.html +2 -3
- package/SVF-doxygen/html/html/functions_n.html +10 -12
- package/SVF-doxygen/html/html/functions_o.html +64 -24
- package/SVF-doxygen/html/html/functions_p.html +24 -34
- package/SVF-doxygen/html/html/functions_r.html +8 -7
- package/SVF-doxygen/html/html/functions_rela.html +78 -4
- package/SVF-doxygen/html/html/functions_s.html +31 -26
- package/SVF-doxygen/html/html/functions_t.html +9 -9
- package/SVF-doxygen/html/html/functions_type_b.html +3 -7
- package/SVF-doxygen/html/html/functions_type_c.html +4 -4
- package/SVF-doxygen/html/html/functions_type_e.html +0 -3
- package/SVF-doxygen/html/html/functions_type_g.html +5 -5
- package/SVF-doxygen/html/html/functions_type_i.html +4 -7
- package/SVF-doxygen/html/html/functions_type_l.html +3 -0
- package/SVF-doxygen/html/html/functions_type_n.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +0 -4
- package/SVF-doxygen/html/html/functions_type_v.html +3 -0
- package/SVF-doxygen/html/html/functions_type_w.html +2 -2
- package/SVF-doxygen/html/html/functions_v.html +10 -13
- package/SVF-doxygen/html/html/functions_vars.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_b.html +2 -5
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -10
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -4
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +1 -4
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_t.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_w.html +1 -1
- package/SVF-doxygen/html/html/functions_w.html +12 -8
- package/SVF-doxygen/html/html/functions_z.html +3 -13
- package/SVF-doxygen/html/html/globals.html +3 -0
- package/SVF-doxygen/html/html/globals_defs.html +3 -0
- package/SVF-doxygen/html/html/globals_defs_f.html +3 -0
- package/SVF-doxygen/html/html/globals_f.html +5 -2
- package/SVF-doxygen/html/html/globals_s.html +6 -6
- package/SVF-doxygen/html/html/hierarchy.html +422 -425
- package/SVF-doxygen/html/html/menudata.js +4 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +10 -57
- package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type.html +1 -7
- package/SVF-doxygen/html/html/namespacemembers_v.html +0 -6
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +3 -4
- package/SVF-doxygen/html/html/search/all_10.js +12 -17
- package/SVF-doxygen/html/html/search/all_12.js +3 -2
- package/SVF-doxygen/html/html/search/all_13.js +18 -17
- package/SVF-doxygen/html/html/search/all_14.js +7 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -6
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_1a.js +3 -5
- package/SVF-doxygen/html/html/search/all_1b.js +4 -8
- package/SVF-doxygen/html/html/search/all_2.js +14 -15
- package/SVF-doxygen/html/html/search/all_3.js +14 -24
- package/SVF-doxygen/html/html/search/all_4.js +3 -3
- package/SVF-doxygen/html/html/search/all_5.js +7 -4
- package/SVF-doxygen/html/html/search/all_6.js +5 -4
- package/SVF-doxygen/html/html/search/all_7.js +28 -25
- package/SVF-doxygen/html/html/search/all_8.js +4 -3
- package/SVF-doxygen/html/html/search/all_9.js +18 -12
- package/SVF-doxygen/html/html/search/all_c.js +4 -2
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +5 -5
- package/SVF-doxygen/html/html/search/all_f.js +25 -16
- package/SVF-doxygen/html/html/search/classes_1.js +1 -2
- package/SVF-doxygen/html/html/search/classes_12.js +1 -2
- package/SVF-doxygen/html/html/search/classes_14.js +1 -2
- package/SVF-doxygen/html/html/search/classes_2.js +0 -3
- package/SVF-doxygen/html/html/search/classes_4.js +1 -0
- package/SVF-doxygen/html/html/search/classes_7.js +3 -1
- package/SVF-doxygen/html/html/search/classes_d.js +0 -1
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/defines_0.js +1 -0
- package/SVF-doxygen/html/html/search/defines_5.js +1 -0
- package/SVF-doxygen/html/html/search/enums_1.js +0 -2
- package/SVF-doxygen/html/html/search/enumvalues_1.js +0 -2
- package/SVF-doxygen/html/html/search/files_1.js +2 -0
- package/SVF-doxygen/html/html/search/files_12.html +26 -0
- package/SVF-doxygen/html/html/search/files_12.js +4 -0
- package/SVF-doxygen/html/html/search/files_2.js +0 -3
- package/SVF-doxygen/html/html/search/files_4.js +2 -0
- package/SVF-doxygen/html/html/search/files_c.js +0 -1
- package/SVF-doxygen/html/html/search/files_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_0.js +1 -4
- package/SVF-doxygen/html/html/search/functions_1.js +8 -9
- package/SVF-doxygen/html/html/search/functions_10.js +7 -6
- package/SVF-doxygen/html/html/search/functions_11.js +2 -1
- package/SVF-doxygen/html/html/search/functions_13.js +0 -2
- package/SVF-doxygen/html/html/search/functions_15.js +2 -2
- package/SVF-doxygen/html/html/search/functions_16.js +4 -8
- package/SVF-doxygen/html/html/search/functions_2.js +5 -8
- package/SVF-doxygen/html/html/search/functions_3.js +3 -3
- package/SVF-doxygen/html/html/search/functions_4.js +2 -1
- package/SVF-doxygen/html/html/search/functions_5.js +3 -3
- package/SVF-doxygen/html/html/search/functions_6.js +25 -22
- package/SVF-doxygen/html/html/search/functions_7.js +2 -3
- package/SVF-doxygen/html/html/search/functions_8.js +12 -6
- package/SVF-doxygen/html/html/search/functions_a.js +1 -0
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +2 -1
- package/SVF-doxygen/html/html/search/functions_d.js +7 -7
- package/SVF-doxygen/html/html/search/functions_e.js +5 -8
- package/SVF-doxygen/html/html/search/functions_f.js +2 -1
- package/SVF-doxygen/html/html/search/related_0.js +1 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -2
- package/SVF-doxygen/html/html/search/related_2.js +1 -1
- package/SVF-doxygen/html/html/search/related_3.js +2 -1
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -2
- package/SVF-doxygen/html/html/search/related_6.js +4 -1
- package/SVF-doxygen/html/html/search/related_7.js +2 -4
- package/SVF-doxygen/html/html/search/related_8.js +18 -1
- package/SVF-doxygen/html/html/search/related_9.js +4 -6
- package/SVF-doxygen/html/html/search/related_a.js +1 -2
- package/SVF-doxygen/html/html/search/related_b.js +7 -2
- package/SVF-doxygen/html/html/search/related_c.html +26 -0
- package/SVF-doxygen/html/html/search/related_c.js +5 -0
- package/SVF-doxygen/html/html/search/related_d.html +26 -0
- package/SVF-doxygen/html/html/search/related_d.js +5 -0
- package/SVF-doxygen/html/html/search/searchdata.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_1.js +2 -3
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -2
- package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +3 -4
- package/SVF-doxygen/html/html/search/typedefs_b.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_f.js +0 -1
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +0 -1
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +1 -1
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +1 -2
- package/SVF-doxygen/html/html/search/variables_3.js +4 -6
- package/SVF-doxygen/html/html/search/variables_5.js +1 -2
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -2
- package/SVF-doxygen/html/html/search/variables_c.js +1 -0
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -2
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +131 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +131 -0
- package/include/MSSA/MemSSA.h +1 -1
- package/include/SABER/PathCondAllocator.h +4 -4
- package/include/SABER/SrcSnkDDA.h +2 -2
- package/include/{Util/CFLSolver.h → SABER/SrcSnkSolver.h} +5 -5
- package/include/{Util → SVF-FE}/IRAnnotator.h +0 -0
- package/include/Util/BDDExpr.h +182 -0
- package/include/Util/DPItem.h +1 -1
- package/include/Util/ExeState.h +172 -0
- package/include/Util/Options.h +0 -3
- package/include/Util/Z3Expr.h +235 -0
- package/include/WPA/FlowSensitiveTBHC.h +1 -1
- package/include/{Util → WPA}/TypeBasedHeapCloning.h +0 -0
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/SABER/PathCondAllocator.cpp +1 -1
- package/lib/Util/BDDExpr.cpp +206 -0
- package/lib/Util/ExeState.cpp +252 -0
- package/lib/Util/Options.cpp +0 -11
- package/lib/Util/SVFUtil.cpp +1 -1
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/lib/{Util → WPA}/TypeBasedHeapCloning.cpp +1 -1
- package/package.json +1 -1
- package/include/Util/Conditions.h +0 -421
- package/include/Util/PathDPItem.h +0 -310
- package/lib/Util/Conditions.cpp +0 -440
|
@@ -0,0 +1,1173 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
3
|
+
<head>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
6
|
+
<meta name="generator" content="Doxygen 1.8.13"/>
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
8
|
+
<title>Static Value-Flow Analysis: SVF::ExeState Class Reference</title>
|
|
9
|
+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
10
|
+
<script type="text/javascript" src="jquery.js"></script>
|
|
11
|
+
<script type="text/javascript" src="dynsections.js"></script>
|
|
12
|
+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
13
|
+
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
14
|
+
<script type="text/javascript" src="search/search.js"></script>
|
|
15
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
19
|
+
<div id="titlearea">
|
|
20
|
+
<table cellspacing="0" cellpadding="0">
|
|
21
|
+
<tbody>
|
|
22
|
+
<tr style="height: 56px;">
|
|
23
|
+
<td id="projectalign" style="padding-left: 0.5em;">
|
|
24
|
+
<div id="projectname">Static Value-Flow Analysis
|
|
25
|
+
</div>
|
|
26
|
+
</td>
|
|
27
|
+
</tr>
|
|
28
|
+
</tbody>
|
|
29
|
+
</table>
|
|
30
|
+
</div>
|
|
31
|
+
<!-- end header part -->
|
|
32
|
+
<!-- Generated by Doxygen 1.8.13 -->
|
|
33
|
+
<script type="text/javascript">
|
|
34
|
+
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
35
|
+
</script>
|
|
36
|
+
<script type="text/javascript" src="menudata.js"></script>
|
|
37
|
+
<script type="text/javascript" src="menu.js"></script>
|
|
38
|
+
<script type="text/javascript">
|
|
39
|
+
$(function() {
|
|
40
|
+
initMenu('',true,false,'search.php','Search');
|
|
41
|
+
$(document).ready(function() { init_search(); });
|
|
42
|
+
});
|
|
43
|
+
</script>
|
|
44
|
+
<div id="main-nav"></div>
|
|
45
|
+
<!-- window showing the filter options -->
|
|
46
|
+
<div id="MSearchSelectWindow"
|
|
47
|
+
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
48
|
+
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
49
|
+
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<!-- iframe showing the search results (closed by default) -->
|
|
53
|
+
<div id="MSearchResultsWindow">
|
|
54
|
+
<iframe src="javascript:void(0)" frameborder="0"
|
|
55
|
+
name="MSearchResults" id="MSearchResults">
|
|
56
|
+
</iframe>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div id="nav-path" class="navpath">
|
|
60
|
+
<ul>
|
|
61
|
+
<li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1ExeState.html">ExeState</a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="summary">
|
|
66
|
+
<a href="#pub-types">Public Types</a> |
|
|
67
|
+
<a href="#pub-methods">Public Member Functions</a> |
|
|
68
|
+
<a href="#pro-methods">Protected Member Functions</a> |
|
|
69
|
+
<a href="#pro-attribs">Protected Attributes</a> |
|
|
70
|
+
<a href="classSVF_1_1ExeState-members.html">List of all members</a> </div>
|
|
71
|
+
<div class="headertitle">
|
|
72
|
+
<div class="title">SVF::ExeState Class Reference</div> </div>
|
|
73
|
+
</div><!--header-->
|
|
74
|
+
<div class="contents">
|
|
75
|
+
|
|
76
|
+
<p><code>#include <<a class="el" href="ExeState_8h_source.html">ExeState.h</a>></code></p>
|
|
77
|
+
<table class="memberdecls">
|
|
78
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
79
|
+
Public Types</h2></td></tr>
|
|
80
|
+
<tr class="memitem:afc4aad166cd39a6cfbd8e9b897104f3f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a></td></tr>
|
|
81
|
+
<tr class="separator:afc4aad166cd39a6cfbd8e9b897104f3f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
|
+
<tr class="memitem:aa1e28e7a815e03c0c9a6f94d289f371b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a></td></tr>
|
|
83
|
+
<tr class="separator:aa1e28e7a815e03c0c9a6f94d289f371b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
84
|
+
</table><table class="memberdecls">
|
|
85
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
86
|
+
Public Member Functions</h2></td></tr>
|
|
87
|
+
<tr class="memitem:a83ce58a2551d511448d0224a96ca1bd7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a83ce58a2551d511448d0224a96ca1bd7">ExeState</a> ()</td></tr>
|
|
88
|
+
<tr class="separator:a83ce58a2551d511448d0224a96ca1bd7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
89
|
+
<tr class="memitem:a02e0a7dd5e66255be3838fa10e3e1cab"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a02e0a7dd5e66255be3838fa10e3e1cab">ExeState</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &_pc, <a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &_varToValMap, <a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a> &_locToValMap)</td></tr>
|
|
90
|
+
<tr class="separator:a02e0a7dd5e66255be3838fa10e3e1cab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
91
|
+
<tr class="memitem:a62bef487b31f2a4ca27b4e9b183bdef5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a62bef487b31f2a4ca27b4e9b183bdef5">ExeState</a> (const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> &rhs)</td></tr>
|
|
92
|
+
<tr class="separator:a62bef487b31f2a4ca27b4e9b183bdef5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
|
+
<tr class="memitem:a56dc11162e701d8d48ea354f9d380167"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a56dc11162e701d8d48ea354f9d380167">~ExeState</a> ()=default</td></tr>
|
|
94
|
+
<tr class="separator:a56dc11162e701d8d48ea354f9d380167"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
|
+
<tr class="memitem:a0c6a0cd40fc94cc2c3829d6ae0a21270"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">operator=</a> (const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> &rhs)</td></tr>
|
|
96
|
+
<tr class="separator:a0c6a0cd40fc94cc2c3829d6ae0a21270"><td class="memSeparator" colspan="2"> </td></tr>
|
|
97
|
+
<tr class="memitem:a0e4c8a41aa861ff2862d8b620c902f21"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">operator==</a> (const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> &rhs) const</td></tr>
|
|
98
|
+
<tr class="memdesc:a0e4c8a41aa861ff2862d8b620c902f21"><td class="mdescLeft"> </td><td class="mdescRight">Overloading Operator==. <a href="#a0e4c8a41aa861ff2862d8b620c902f21">More...</a><br /></td></tr>
|
|
99
|
+
<tr class="separator:a0e4c8a41aa861ff2862d8b620c902f21"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
+
<tr class="memitem:a4ee62e9c0cc0eb34c72effc2c203506a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a4ee62e9c0cc0eb34c72effc2c203506a">operator!=</a> (const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> &rhs) const</td></tr>
|
|
101
|
+
<tr class="memdesc:a4ee62e9c0cc0eb34c72effc2c203506a"><td class="mdescLeft"> </td><td class="mdescRight">Overloading Operator!=. <a href="#a4ee62e9c0cc0eb34c72effc2c203506a">More...</a><br /></td></tr>
|
|
102
|
+
<tr class="separator:a4ee62e9c0cc0eb34c72effc2c203506a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
103
|
+
<tr class="memitem:a10a12722f1974d466ef07a35d9dff108"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">operator<</a> (const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> &rhs) const</td></tr>
|
|
104
|
+
<tr class="memdesc:a10a12722f1974d466ef07a35d9dff108"><td class="mdescLeft"> </td><td class="mdescRight">Overloading Operator==. <a href="#a10a12722f1974d466ef07a35d9dff108">More...</a><br /></td></tr>
|
|
105
|
+
<tr class="separator:a10a12722f1974d466ef07a35d9dff108"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
|
+
<tr class="memitem:ac7a74f57945b7f076a5cfe9435fd34e8"><td class="memItemLeft" align="right" valign="top">z3::context & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a> ()</td></tr>
|
|
107
|
+
<tr class="separator:ac7a74f57945b7f076a5cfe9435fd34e8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
|
+
<tr class="memitem:abf1237f5e4661a2da6e479f147957b18"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a> () const</td></tr>
|
|
109
|
+
<tr class="separator:abf1237f5e4661a2da6e479f147957b18"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
|
+
<tr class="memitem:a4ee40de7eca22ac055b52360e0101623"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a> () const</td></tr>
|
|
111
|
+
<tr class="separator:a4ee40de7eca22ac055b52360e0101623"><td class="memSeparator" colspan="2"> </td></tr>
|
|
112
|
+
<tr class="memitem:a00bd54e2dc70a8547581008e27790eb8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a> () const</td></tr>
|
|
113
|
+
<tr class="separator:a00bd54e2dc70a8547581008e27790eb8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
114
|
+
<tr class="memitem:abb73aa9e213818e89e1fb8abdd7a3309"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#abb73aa9e213818e89e1fb8abdd7a3309">setPathConstraint</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &pc)</td></tr>
|
|
115
|
+
<tr class="separator:abb73aa9e213818e89e1fb8abdd7a3309"><td class="memSeparator" colspan="2"> </td></tr>
|
|
116
|
+
<tr class="memitem:af539858577135d706304bb0703f1530d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#af539858577135d706304bb0703f1530d">operator[]</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</td></tr>
|
|
117
|
+
<tr class="separator:af539858577135d706304bb0703f1530d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
118
|
+
<tr class="memitem:a7b3013578baac3ce73bc544569c3dbbf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">initValVar</a> (const <a class="el" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &e)</td></tr>
|
|
119
|
+
<tr class="memdesc:a7b3013578baac3ce73bc544569c3dbbf"><td class="mdescLeft"> </td><td class="mdescRight">Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ValVar.html">ValVar</a>. <a href="#a7b3013578baac3ce73bc544569c3dbbf">More...</a><br /></td></tr>
|
|
120
|
+
<tr class="separator:a7b3013578baac3ce73bc544569c3dbbf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
121
|
+
<tr class="memitem:af4018e9053baa373b590230bc53b7ccb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">initObjVar</a> (const <a class="el" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &e)</td></tr>
|
|
122
|
+
<tr class="memdesc:af4018e9053baa373b590230bc53b7ccb"><td class="mdescLeft"> </td><td class="mdescRight">Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ObjVar.html">ObjVar</a>. <a href="#af4018e9053baa373b590230bc53b7ccb">More...</a><br /></td></tr>
|
|
123
|
+
<tr class="separator:af4018e9053baa373b590230bc53b7ccb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
124
|
+
<tr class="memitem:ab52debe3aae77d1efd5de4d220dbed2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">getZ3Expr</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</td></tr>
|
|
125
|
+
<tr class="memdesc:ab52debe3aae77d1efd5de4d220dbed2f"><td class="mdescLeft"> </td><td class="mdescRight">Return Z3 expression based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID. <a href="#ab52debe3aae77d1efd5de4d220dbed2f">More...</a><br /></td></tr>
|
|
126
|
+
<tr class="separator:ab52debe3aae77d1efd5de4d220dbed2f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
127
|
+
<tr class="memitem:a08db85e0e599d17b54743feb03a7717a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">store</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &loc, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &value)</td></tr>
|
|
128
|
+
<tr class="memdesc:a08db85e0e599d17b54743feb03a7717a"><td class="mdescLeft"> </td><td class="mdescRight">Store value to location. <a href="#a08db85e0e599d17b54743feb03a7717a">More...</a><br /></td></tr>
|
|
129
|
+
<tr class="separator:a08db85e0e599d17b54743feb03a7717a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
130
|
+
<tr class="memitem:a80bd7f3746198459bbcb59274cebc013"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">load</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &loc)</td></tr>
|
|
131
|
+
<tr class="memdesc:a80bd7f3746198459bbcb59274cebc013"><td class="mdescLeft"> </td><td class="mdescRight">Load value at location. <a href="#a80bd7f3746198459bbcb59274cebc013">More...</a><br /></td></tr>
|
|
132
|
+
<tr class="separator:a80bd7f3746198459bbcb59274cebc013"><td class="memSeparator" colspan="2"> </td></tr>
|
|
133
|
+
<tr class="memitem:af97d422306089e69c2910c6084475c51"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">getVirtualMemAddress</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx) const</td></tr>
|
|
134
|
+
<tr class="memdesc:af97d422306089e69c2910c6084475c51"><td class="mdescLeft"> </td><td class="mdescRight">The physical address starts with 0x7f...... + idx. <a href="#af97d422306089e69c2910c6084475c51">More...</a><br /></td></tr>
|
|
135
|
+
<tr class="separator:af97d422306089e69c2910c6084475c51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
136
|
+
<tr class="memitem:a2d5f2c2de23c919a47432501c3ad8adb"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">isVirtualMemAddress</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> val)</td></tr>
|
|
137
|
+
<tr class="memdesc:a2d5f2c2de23c919a47432501c3ad8adb"><td class="mdescLeft"> </td><td class="mdescRight">Check bit value of val start with 0x7F000000, filter by 0xFF000000. <a href="#a2d5f2c2de23c919a47432501c3ad8adb">More...</a><br /></td></tr>
|
|
138
|
+
<tr class="separator:a2d5f2c2de23c919a47432501c3ad8adb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
139
|
+
<tr class="memitem:a2535d6ef4a91b2bd2366b6a89265ab91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx) const</td></tr>
|
|
140
|
+
<tr class="memdesc:a2535d6ef4a91b2bd2366b6a89265ab91"><td class="mdescLeft"> </td><td class="mdescRight">Return the internal index if idx is an address otherwise return the value of idx. <a href="#a2535d6ef4a91b2bd2366b6a89265ab91">More...</a><br /></td></tr>
|
|
141
|
+
<tr class="separator:a2535d6ef4a91b2bd2366b6a89265ab91"><td class="memSeparator" colspan="2"> </td></tr>
|
|
142
|
+
<tr class="memitem:ab931a1b6a85d3db047bc50741a22c8a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &e)</td></tr>
|
|
143
|
+
<tr class="memdesc:ab931a1b6a85d3db047bc50741a22c8a6"><td class="mdescLeft"> </td><td class="mdescRight">Return int value from an expression if it is a numeral, otherwise return an approximate value. <a href="#ab931a1b6a85d3db047bc50741a22c8a6">More...</a><br /></td></tr>
|
|
144
|
+
<tr class="separator:ab931a1b6a85d3db047bc50741a22c8a6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
145
|
+
<tr class="memitem:aee8eece3daa2b7cbebb8dcde761931c2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">printExprValues</a> ()</td></tr>
|
|
146
|
+
<tr class="memdesc:aee8eece3daa2b7cbebb8dcde761931c2"><td class="mdescLeft"> </td><td class="mdescRight">Print values of all expressions. <a href="#aee8eece3daa2b7cbebb8dcde761931c2">More...</a><br /></td></tr>
|
|
147
|
+
<tr class="separator:aee8eece3daa2b7cbebb8dcde761931c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
148
|
+
</table><table class="memberdecls">
|
|
149
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
|
|
150
|
+
Protected Member Functions</h2></td></tr>
|
|
151
|
+
<tr class="memitem:ade4fc12b40dd05bf840c313f2b723879"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#ade4fc12b40dd05bf840c313f2b723879">store</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &z3Expr)</td></tr>
|
|
152
|
+
<tr class="separator:ade4fc12b40dd05bf840c313f2b723879"><td class="memSeparator" colspan="2"> </td></tr>
|
|
153
|
+
<tr class="memitem:a8b58d74bd718d66cde9ad7e868d6137a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a8b58d74bd718d66cde9ad7e868d6137a">load</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId)</td></tr>
|
|
154
|
+
<tr class="separator:a8b58d74bd718d66cde9ad7e868d6137a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
155
|
+
</table><table class="memberdecls">
|
|
156
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
|
157
|
+
Protected Attributes</h2></td></tr>
|
|
158
|
+
<tr class="memitem:a32a5c65de2656ecfd2e33100a44dc02f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a></td></tr>
|
|
159
|
+
<tr class="separator:a32a5c65de2656ecfd2e33100a44dc02f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
160
|
+
<tr class="memitem:a55464ae666ae16656ad8903894ec14da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a></td></tr>
|
|
161
|
+
<tr class="separator:a55464ae666ae16656ad8903894ec14da"><td class="memSeparator" colspan="2"> </td></tr>
|
|
162
|
+
<tr class="memitem:a7a9c5c2275246a43414503f6822073b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a></td></tr>
|
|
163
|
+
<tr class="separator:a7a9c5c2275246a43414503f6822073b1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
164
|
+
</table>
|
|
165
|
+
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
166
|
+
<div class="textblock">
|
|
167
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00039">39</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
168
|
+
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
169
|
+
<a id="aa1e28e7a815e03c0c9a6f94d289f371b"></a>
|
|
170
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa1e28e7a815e03c0c9a6f94d289f371b">◆ </a></span>LocToValMap</h2>
|
|
171
|
+
|
|
172
|
+
<div class="memitem">
|
|
173
|
+
<div class="memproto">
|
|
174
|
+
<table class="memname">
|
|
175
|
+
<tr>
|
|
176
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>> <a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">SVF::ExeState::LocToValMap</a></td>
|
|
177
|
+
</tr>
|
|
178
|
+
</table>
|
|
179
|
+
</div><div class="memdoc">
|
|
180
|
+
|
|
181
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00042">42</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
182
|
+
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
<a id="afc4aad166cd39a6cfbd8e9b897104f3f"></a>
|
|
186
|
+
<h2 class="memtitle"><span class="permalink"><a href="#afc4aad166cd39a6cfbd8e9b897104f3f">◆ </a></span>VarToValMap</h2>
|
|
187
|
+
|
|
188
|
+
<div class="memitem">
|
|
189
|
+
<div class="memproto">
|
|
190
|
+
<table class="memname">
|
|
191
|
+
<tr>
|
|
192
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>> <a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">SVF::ExeState::VarToValMap</a></td>
|
|
193
|
+
</tr>
|
|
194
|
+
</table>
|
|
195
|
+
</div><div class="memdoc">
|
|
196
|
+
|
|
197
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00041">41</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
198
|
+
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
202
|
+
<a id="a83ce58a2551d511448d0224a96ca1bd7"></a>
|
|
203
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a83ce58a2551d511448d0224a96ca1bd7">◆ </a></span>ExeState() <span class="overload">[1/3]</span></h2>
|
|
204
|
+
|
|
205
|
+
<div class="memitem">
|
|
206
|
+
<div class="memproto">
|
|
207
|
+
<table class="mlabels">
|
|
208
|
+
<tr>
|
|
209
|
+
<td class="mlabels-left">
|
|
210
|
+
<table class="memname">
|
|
211
|
+
<tr>
|
|
212
|
+
<td class="memname">SVF::ExeState::ExeState </td>
|
|
213
|
+
<td>(</td>
|
|
214
|
+
<td class="paramname"></td><td>)</td>
|
|
215
|
+
<td></td>
|
|
216
|
+
</tr>
|
|
217
|
+
</table>
|
|
218
|
+
</td>
|
|
219
|
+
<td class="mlabels-right">
|
|
220
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
221
|
+
</tr>
|
|
222
|
+
</table>
|
|
223
|
+
</div><div class="memdoc">
|
|
224
|
+
|
|
225
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00050">50</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
226
|
+
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> : <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>(<a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().bool_val(<span class="keyword">true</span>)) {}</div><div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
227
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ac7a74f57945b7f076a5cfe9435fd34e8"><div class="ttname"><a href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">SVF::ExeState::getContext</a></div><div class="ttdeci">z3::context & getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00076">ExeState.h:76</a></div></div>
|
|
228
|
+
</div><!-- fragment -->
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
<a id="a02e0a7dd5e66255be3838fa10e3e1cab"></a>
|
|
232
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a02e0a7dd5e66255be3838fa10e3e1cab">◆ </a></span>ExeState() <span class="overload">[2/3]</span></h2>
|
|
233
|
+
|
|
234
|
+
<div class="memitem">
|
|
235
|
+
<div class="memproto">
|
|
236
|
+
<table class="mlabels">
|
|
237
|
+
<tr>
|
|
238
|
+
<td class="mlabels-left">
|
|
239
|
+
<table class="memname">
|
|
240
|
+
<tr>
|
|
241
|
+
<td class="memname">SVF::ExeState::ExeState </td>
|
|
242
|
+
<td>(</td>
|
|
243
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
244
|
+
<td class="paramname"><em>_pc</em>, </td>
|
|
245
|
+
</tr>
|
|
246
|
+
<tr>
|
|
247
|
+
<td class="paramkey"></td>
|
|
248
|
+
<td></td>
|
|
249
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> & </td>
|
|
250
|
+
<td class="paramname"><em>_varToValMap</em>, </td>
|
|
251
|
+
</tr>
|
|
252
|
+
<tr>
|
|
253
|
+
<td class="paramkey"></td>
|
|
254
|
+
<td></td>
|
|
255
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a> & </td>
|
|
256
|
+
<td class="paramname"><em>_locToValMap</em> </td>
|
|
257
|
+
</tr>
|
|
258
|
+
<tr>
|
|
259
|
+
<td></td>
|
|
260
|
+
<td>)</td>
|
|
261
|
+
<td></td><td></td>
|
|
262
|
+
</tr>
|
|
263
|
+
</table>
|
|
264
|
+
</td>
|
|
265
|
+
<td class="mlabels-right">
|
|
266
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
267
|
+
</tr>
|
|
268
|
+
</table>
|
|
269
|
+
</div><div class="memdoc">
|
|
270
|
+
|
|
271
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00052">52</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
272
|
+
<div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  : <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>(_varToValMap),</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>(_locToValMap),</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>(_pc) {}</div><div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
273
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
274
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
275
|
+
</div><!-- fragment -->
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
<a id="a62bef487b31f2a4ca27b4e9b183bdef5"></a>
|
|
279
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a62bef487b31f2a4ca27b4e9b183bdef5">◆ </a></span>ExeState() <span class="overload">[3/3]</span></h2>
|
|
280
|
+
|
|
281
|
+
<div class="memitem">
|
|
282
|
+
<div class="memproto">
|
|
283
|
+
<table class="mlabels">
|
|
284
|
+
<tr>
|
|
285
|
+
<td class="mlabels-left">
|
|
286
|
+
<table class="memname">
|
|
287
|
+
<tr>
|
|
288
|
+
<td class="memname">SVF::ExeState::ExeState </td>
|
|
289
|
+
<td>(</td>
|
|
290
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td>
|
|
291
|
+
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
292
|
+
<td></td>
|
|
293
|
+
</tr>
|
|
294
|
+
</table>
|
|
295
|
+
</td>
|
|
296
|
+
<td class="mlabels-right">
|
|
297
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
298
|
+
</tr>
|
|
299
|
+
</table>
|
|
300
|
+
</div><div class="memdoc">
|
|
301
|
+
|
|
302
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00056">56</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
303
|
+
<div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  : <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>(rhs.getVarToVal()), <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>(rhs.getLocToVal()),</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>(rhs.getPathConstraint()) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
304
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
305
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
306
|
+
</div><!-- fragment -->
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
<a id="a56dc11162e701d8d48ea354f9d380167"></a>
|
|
310
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a56dc11162e701d8d48ea354f9d380167">◆ </a></span>~ExeState()</h2>
|
|
311
|
+
|
|
312
|
+
<div class="memitem">
|
|
313
|
+
<div class="memproto">
|
|
314
|
+
<table class="mlabels">
|
|
315
|
+
<tr>
|
|
316
|
+
<td class="mlabels-left">
|
|
317
|
+
<table class="memname">
|
|
318
|
+
<tr>
|
|
319
|
+
<td class="memname">virtual SVF::ExeState::~ExeState </td>
|
|
320
|
+
<td>(</td>
|
|
321
|
+
<td class="paramname"></td><td>)</td>
|
|
322
|
+
<td></td>
|
|
323
|
+
</tr>
|
|
324
|
+
</table>
|
|
325
|
+
</td>
|
|
326
|
+
<td class="mlabels-right">
|
|
327
|
+
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
|
|
328
|
+
</tr>
|
|
329
|
+
</table>
|
|
330
|
+
</div><div class="memdoc">
|
|
331
|
+
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
<h2 class="groupheader">Member Function Documentation</h2>
|
|
335
|
+
<a id="ac7a74f57945b7f076a5cfe9435fd34e8"></a>
|
|
336
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac7a74f57945b7f076a5cfe9435fd34e8">◆ </a></span>getContext()</h2>
|
|
337
|
+
|
|
338
|
+
<div class="memitem">
|
|
339
|
+
<div class="memproto">
|
|
340
|
+
<table class="mlabels">
|
|
341
|
+
<tr>
|
|
342
|
+
<td class="mlabels-left">
|
|
343
|
+
<table class="memname">
|
|
344
|
+
<tr>
|
|
345
|
+
<td class="memname">z3::context& SVF::ExeState::getContext </td>
|
|
346
|
+
<td>(</td>
|
|
347
|
+
<td class="paramname"></td><td>)</td>
|
|
348
|
+
<td></td>
|
|
349
|
+
</tr>
|
|
350
|
+
</table>
|
|
351
|
+
</td>
|
|
352
|
+
<td class="mlabels-right">
|
|
353
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
354
|
+
</tr>
|
|
355
|
+
</table>
|
|
356
|
+
</div><div class="memdoc">
|
|
357
|
+
|
|
358
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00076">76</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
359
|
+
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a1441f8e559aab4a051fff45a8c0665db">Z3Expr::getContext</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a1441f8e559aab4a051fff45a8c0665db"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a1441f8e559aab4a051fff45a8c0665db">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_8h_source.html#l00075">Z3Expr.h:75</a></div></div>
|
|
360
|
+
</div><!-- fragment -->
|
|
361
|
+
</div>
|
|
362
|
+
</div>
|
|
363
|
+
<a id="a2535d6ef4a91b2bd2366b6a89265ab91"></a>
|
|
364
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2535d6ef4a91b2bd2366b6a89265ab91">◆ </a></span>getInternalID()</h2>
|
|
365
|
+
|
|
366
|
+
<div class="memitem">
|
|
367
|
+
<div class="memproto">
|
|
368
|
+
<table class="mlabels">
|
|
369
|
+
<tr>
|
|
370
|
+
<td class="mlabels-left">
|
|
371
|
+
<table class="memname">
|
|
372
|
+
<tr>
|
|
373
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::ExeState::getInternalID </td>
|
|
374
|
+
<td>(</td>
|
|
375
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
376
|
+
<td class="paramname"><em>idx</em></td><td>)</td>
|
|
377
|
+
<td> const</td>
|
|
378
|
+
</tr>
|
|
379
|
+
</table>
|
|
380
|
+
</td>
|
|
381
|
+
<td class="mlabels-right">
|
|
382
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
383
|
+
</tr>
|
|
384
|
+
</table>
|
|
385
|
+
</div><div class="memdoc">
|
|
386
|
+
|
|
387
|
+
<p>Return the internal index if idx is an address otherwise return the value of idx. </p>
|
|
388
|
+
|
|
389
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00126">126</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
390
|
+
<div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> (idx & <a class="code" href="ExeState_8h.html#aec682540f2c8aa9deb79f610e4399411">FlippedAddressMask</a>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="ttc" id="ExeState_8h_html_aec682540f2c8aa9deb79f610e4399411"><div class="ttname"><a href="ExeState_8h.html#aec682540f2c8aa9deb79f610e4399411">FlippedAddressMask</a></div><div class="ttdeci">#define FlippedAddressMask</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00037">ExeState.h:37</a></div></div>
|
|
391
|
+
</div><!-- fragment -->
|
|
392
|
+
</div>
|
|
393
|
+
</div>
|
|
394
|
+
<a id="a4ee40de7eca22ac055b52360e0101623"></a>
|
|
395
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a4ee40de7eca22ac055b52360e0101623">◆ </a></span>getLocToVal()</h2>
|
|
396
|
+
|
|
397
|
+
<div class="memitem">
|
|
398
|
+
<div class="memproto">
|
|
399
|
+
<table class="mlabels">
|
|
400
|
+
<tr>
|
|
401
|
+
<td class="mlabels-left">
|
|
402
|
+
<table class="memname">
|
|
403
|
+
<tr>
|
|
404
|
+
<td class="memname">const <a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a>& SVF::ExeState::getLocToVal </td>
|
|
405
|
+
<td>(</td>
|
|
406
|
+
<td class="paramname"></td><td>)</td>
|
|
407
|
+
<td> const</td>
|
|
408
|
+
</tr>
|
|
409
|
+
</table>
|
|
410
|
+
</td>
|
|
411
|
+
<td class="mlabels-right">
|
|
412
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
413
|
+
</tr>
|
|
414
|
+
</table>
|
|
415
|
+
</div><div class="memdoc">
|
|
416
|
+
|
|
417
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00084">84</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
418
|
+
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
419
|
+
</div><!-- fragment -->
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
<a id="a00bd54e2dc70a8547581008e27790eb8"></a>
|
|
423
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a00bd54e2dc70a8547581008e27790eb8">◆ </a></span>getPathConstraint()</h2>
|
|
424
|
+
|
|
425
|
+
<div class="memitem">
|
|
426
|
+
<div class="memproto">
|
|
427
|
+
<table class="mlabels">
|
|
428
|
+
<tr>
|
|
429
|
+
<td class="mlabels-left">
|
|
430
|
+
<table class="memname">
|
|
431
|
+
<tr>
|
|
432
|
+
<td class="memname">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& SVF::ExeState::getPathConstraint </td>
|
|
433
|
+
<td>(</td>
|
|
434
|
+
<td class="paramname"></td><td>)</td>
|
|
435
|
+
<td> const</td>
|
|
436
|
+
</tr>
|
|
437
|
+
</table>
|
|
438
|
+
</td>
|
|
439
|
+
<td class="mlabels-right">
|
|
440
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
441
|
+
</tr>
|
|
442
|
+
</table>
|
|
443
|
+
</div><div class="memdoc">
|
|
444
|
+
|
|
445
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00088">88</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
446
|
+
<div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
447
|
+
</div><!-- fragment -->
|
|
448
|
+
</div>
|
|
449
|
+
</div>
|
|
450
|
+
<a id="abf1237f5e4661a2da6e479f147957b18"></a>
|
|
451
|
+
<h2 class="memtitle"><span class="permalink"><a href="#abf1237f5e4661a2da6e479f147957b18">◆ </a></span>getVarToVal()</h2>
|
|
452
|
+
|
|
453
|
+
<div class="memitem">
|
|
454
|
+
<div class="memproto">
|
|
455
|
+
<table class="mlabels">
|
|
456
|
+
<tr>
|
|
457
|
+
<td class="mlabels-left">
|
|
458
|
+
<table class="memname">
|
|
459
|
+
<tr>
|
|
460
|
+
<td class="memname">const <a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a>& SVF::ExeState::getVarToVal </td>
|
|
461
|
+
<td>(</td>
|
|
462
|
+
<td class="paramname"></td><td>)</td>
|
|
463
|
+
<td> const</td>
|
|
464
|
+
</tr>
|
|
465
|
+
</table>
|
|
466
|
+
</td>
|
|
467
|
+
<td class="mlabels-right">
|
|
468
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
469
|
+
</tr>
|
|
470
|
+
</table>
|
|
471
|
+
</div><div class="memdoc">
|
|
472
|
+
|
|
473
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00080">80</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
474
|
+
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
475
|
+
</div><!-- fragment -->
|
|
476
|
+
</div>
|
|
477
|
+
</div>
|
|
478
|
+
<a id="af97d422306089e69c2910c6084475c51"></a>
|
|
479
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af97d422306089e69c2910c6084475c51">◆ </a></span>getVirtualMemAddress()</h2>
|
|
480
|
+
|
|
481
|
+
<div class="memitem">
|
|
482
|
+
<div class="memproto">
|
|
483
|
+
<table class="mlabels">
|
|
484
|
+
<tr>
|
|
485
|
+
<td class="mlabels-left">
|
|
486
|
+
<table class="memname">
|
|
487
|
+
<tr>
|
|
488
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::ExeState::getVirtualMemAddress </td>
|
|
489
|
+
<td>(</td>
|
|
490
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
491
|
+
<td class="paramname"><em>idx</em></td><td>)</td>
|
|
492
|
+
<td> const</td>
|
|
493
|
+
</tr>
|
|
494
|
+
</table>
|
|
495
|
+
</td>
|
|
496
|
+
<td class="mlabels-right">
|
|
497
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
498
|
+
</tr>
|
|
499
|
+
</table>
|
|
500
|
+
</div><div class="memdoc">
|
|
501
|
+
|
|
502
|
+
<p>The physical address starts with 0x7f...... + idx. </p>
|
|
503
|
+
|
|
504
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00116">116</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
505
|
+
<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a> + idx;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="ttc" id="ExeState_8h_html_a9c5bf91d8f58ded0fd8f57c04f26b56f"><div class="ttname"><a href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a></div><div class="ttdeci">#define AddressMask</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00036">ExeState.h:36</a></div></div>
|
|
506
|
+
</div><!-- fragment -->
|
|
507
|
+
</div>
|
|
508
|
+
</div>
|
|
509
|
+
<a id="ab52debe3aae77d1efd5de4d220dbed2f"></a>
|
|
510
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab52debe3aae77d1efd5de4d220dbed2f">◆ </a></span>getZ3Expr()</h2>
|
|
511
|
+
|
|
512
|
+
<div class="memitem">
|
|
513
|
+
<div class="memproto">
|
|
514
|
+
<table class="memname">
|
|
515
|
+
<tr>
|
|
516
|
+
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & ExeState::getZ3Expr </td>
|
|
517
|
+
<td>(</td>
|
|
518
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
519
|
+
<td class="paramname"><em>varId</em></td><td>)</td>
|
|
520
|
+
<td></td>
|
|
521
|
+
</tr>
|
|
522
|
+
</table>
|
|
523
|
+
</div><div class="memdoc">
|
|
524
|
+
|
|
525
|
+
<p>Return Z3 expression based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID. </p>
|
|
526
|
+
<p>Return Z3 expression based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID </p><dl class="params"><dt>Parameters</dt><dd>
|
|
527
|
+
<table class="params">
|
|
528
|
+
<tr><td class="paramname">varId</td><td><a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID </td></tr>
|
|
529
|
+
</table>
|
|
530
|
+
</dd>
|
|
531
|
+
</dl>
|
|
532
|
+
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
|
|
533
|
+
|
|
534
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00116">116</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
535
|
+
<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a>(varId) == varId && <span class="stringliteral">"SVFVar idx overflow > 0x7f000000?"</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &e = <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>[varId];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (eq(e, <a class="code" href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">Z3Expr::nullExpr</a>())) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  std::string str;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast<ValVar>(svfVar)) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">initValVar</a>(valVar, e);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast<ObjVar>(svfVar)) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">initObjVar</a>(objVar, e);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"var type not supported"</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> e;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }</div><div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00266">SVFVariables.h:266</a></div></div>
|
|
536
|
+
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
537
|
+
<div class="ttc" id="classSVF_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#l00037">Z3Expr.h:37</a></div></div>
|
|
538
|
+
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
539
|
+
<div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00314">SVFVariables.h:314</a></div></div>
|
|
540
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
|
|
541
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
542
|
+
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
543
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_af4018e9053baa373b590230bc53b7ccb"><div class="ttname"><a href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">SVF::ExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, Z3Expr &e)</div><div class="ttdoc">Init Z3Expr for ObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00070">ExeState.cpp:70</a></div></div>
|
|
544
|
+
<div class="ttc" id="classSVF_1_1Z3Expr_html_a9aa800372d57db519d484cc32ea1c5dc"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">SVF::Z3Expr::nullExpr</a></div><div class="ttdeci">static z3::expr nullExpr()</div><div class="ttdoc">null expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00089">Z3Expr.h:89</a></div></div>
|
|
545
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2535d6ef4a91b2bd2366b6a89265ab91"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">SVF::ExeState::getInternalID</a></div><div class="ttdeci">u32_t getInternalID(u32_t idx) const</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00126">ExeState.h:126</a></div></div>
|
|
546
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a7b3013578baac3ce73bc544569c3dbbf"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">SVF::ExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, Z3Expr &e)</div><div class="ttdoc">Init Z3Expr for ValVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00042">ExeState.cpp:42</a></div></div>
|
|
547
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
|
|
548
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
549
|
+
</div><!-- fragment -->
|
|
550
|
+
</div>
|
|
551
|
+
</div>
|
|
552
|
+
<a id="af4018e9053baa373b590230bc53b7ccb"></a>
|
|
553
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af4018e9053baa373b590230bc53b7ccb">◆ </a></span>initObjVar()</h2>
|
|
554
|
+
|
|
555
|
+
<div class="memitem">
|
|
556
|
+
<div class="memproto">
|
|
557
|
+
<table class="memname">
|
|
558
|
+
<tr>
|
|
559
|
+
<td class="memname">void ExeState::initObjVar </td>
|
|
560
|
+
<td>(</td>
|
|
561
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ObjVar.html">ObjVar</a> * </td>
|
|
562
|
+
<td class="paramname"><em>objVar</em>, </td>
|
|
563
|
+
</tr>
|
|
564
|
+
<tr>
|
|
565
|
+
<td class="paramkey"></td>
|
|
566
|
+
<td></td>
|
|
567
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
568
|
+
<td class="paramname"><em>e</em> </td>
|
|
569
|
+
</tr>
|
|
570
|
+
<tr>
|
|
571
|
+
<td></td>
|
|
572
|
+
<td>)</td>
|
|
573
|
+
<td></td><td></td>
|
|
574
|
+
</tr>
|
|
575
|
+
</table>
|
|
576
|
+
</div><div class="memdoc">
|
|
577
|
+
|
|
578
|
+
<p>Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ObjVar.html">ObjVar</a>. </p>
|
|
579
|
+
<p>Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ObjVar.html">ObjVar</a> </p><dl class="params"><dt>Parameters</dt><dd>
|
|
580
|
+
<table class="params">
|
|
581
|
+
<tr><td class="paramname">objVar</td><td></td></tr>
|
|
582
|
+
<tr><td class="paramname">e</td><td></td></tr>
|
|
583
|
+
</table>
|
|
584
|
+
</dd>
|
|
585
|
+
</dl>
|
|
586
|
+
<p>constant data</p>
|
|
587
|
+
<p>locations (address-taken variables) </p>
|
|
588
|
+
|
|
589
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00070">70</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
590
|
+
<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::string str;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  rawstr << <span class="stringliteral">"ObjVar"</span> << objVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>()) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-><a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">isConstantData</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>()) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *consInt = SVFUtil::dyn_cast<ConstantInt>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>())) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getTrue(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>())) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(1);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getFalse(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>()))</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(0);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(consInt->getSExtValue());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> llvm::ConstantFP *consFP = SVFUtil::dyn_cast<llvm::ConstantFP>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(static_cast<u32_t>(consFP->getValue().convertToFloat()));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ConstantPointerNull>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(0);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GlobalVariable>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(<a class="code" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">getVirtualMemAddress</a>(objVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ConstantAggregate>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"implement this part"</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  std::cerr << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what other types of values we have?"</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(<a class="code" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">getVirtualMemAddress</a>(objVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<DummyObjVar>(objVar) &&</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="stringliteral">"it should either be a blackhole or constant dummy if this obj has no value?"</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(<a class="code" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">getVirtualMemAddress</a>(objVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00392">SymbolTableInfo.h:392</a></div></div>
|
|
591
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_af97d422306089e69c2910c6084475c51"><div class="ttname"><a href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">SVF::ExeState::getVirtualMemAddress</a></div><div class="ttdeci">u32_t getVirtualMemAddress(u32_t idx) const</div><div class="ttdoc">The physical address starts with 0x7f...... + idx. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00116">ExeState.h:116</a></div></div>
|
|
592
|
+
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
593
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ac7a74f57945b7f076a5cfe9435fd34e8"><div class="ttname"><a href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">SVF::ExeState::getContext</a></div><div class="ttdeci">z3::context & getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00076">ExeState.h:76</a></div></div>
|
|
594
|
+
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext & getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00198">LLVMModule.h:198</a></div></div>
|
|
595
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00727">SymbolTableInfo.cpp:727</a></div></div>
|
|
596
|
+
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
|
|
597
|
+
<div class="ttc" id="classSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00354">SVFVariables.h:354</a></div></div>
|
|
598
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00722">SymbolTableInfo.cpp:722</a></div></div>
|
|
599
|
+
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
600
|
+
<div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
|
|
601
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
|
|
602
|
+
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
603
|
+
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
604
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00416">SymbolTableInfo.h:416</a></div></div>
|
|
605
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_aa50d7c3b4e7ac0aa769bc094bea26e16"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">SVF::MemObj::isConstantData</a></div><div class="ttdeci">bool isConstantData() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00737">SymbolTableInfo.cpp:737</a></div></div>
|
|
606
|
+
</div><!-- fragment -->
|
|
607
|
+
</div>
|
|
608
|
+
</div>
|
|
609
|
+
<a id="a7b3013578baac3ce73bc544569c3dbbf"></a>
|
|
610
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7b3013578baac3ce73bc544569c3dbbf">◆ </a></span>initValVar()</h2>
|
|
611
|
+
|
|
612
|
+
<div class="memitem">
|
|
613
|
+
<div class="memproto">
|
|
614
|
+
<table class="memname">
|
|
615
|
+
<tr>
|
|
616
|
+
<td class="memname">void ExeState::initValVar </td>
|
|
617
|
+
<td>(</td>
|
|
618
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ValVar.html">ValVar</a> * </td>
|
|
619
|
+
<td class="paramname"><em>valVar</em>, </td>
|
|
620
|
+
</tr>
|
|
621
|
+
<tr>
|
|
622
|
+
<td class="paramkey"></td>
|
|
623
|
+
<td></td>
|
|
624
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
625
|
+
<td class="paramname"><em>e</em> </td>
|
|
626
|
+
</tr>
|
|
627
|
+
<tr>
|
|
628
|
+
<td></td>
|
|
629
|
+
<td>)</td>
|
|
630
|
+
<td></td><td></td>
|
|
631
|
+
</tr>
|
|
632
|
+
</table>
|
|
633
|
+
</div><div class="memdoc">
|
|
634
|
+
|
|
635
|
+
<p>Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ValVar.html">ValVar</a>. </p>
|
|
636
|
+
<p>Init <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> for <a class="el" href="classSVF_1_1ValVar.html">ValVar</a> </p><dl class="params"><dt>Parameters</dt><dd>
|
|
637
|
+
<table class="params">
|
|
638
|
+
<tr><td class="paramname">valVar</td><td></td></tr>
|
|
639
|
+
<tr><td class="paramname">e</td><td></td></tr>
|
|
640
|
+
</table>
|
|
641
|
+
</dd>
|
|
642
|
+
</dl>
|
|
643
|
+
|
|
644
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00042">42</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
645
|
+
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  std::string str;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  rawstr << <span class="stringliteral">"ValVar"</span> << valVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type = valVar-><a class="code" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">getType</a>()) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (type->isIntegerTy() || type->isFloatingPointTy() || type->isPointerTy() || type->isFunctionTy()</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  || type->isStructTy() || type->isArrayTy() || type->isVoidTy() || type->isLabelTy() || type->isMetadataTy())</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(valVar-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) << <span class="stringliteral">"\n"</span> << <span class="stringliteral">" type: "</span> << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">type2String</a>(type) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"what other types we have"</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span> (svfir-><a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_val(0);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  e = <a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<DummyValVar>(valVar) && <span class="stringliteral">"not a DummValVar if it has no type?"</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div><div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
|
|
646
|
+
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
647
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ac7a74f57945b7f076a5cfe9435fd34e8"><div class="ttname"><a href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">SVF::ExeState::getContext</a></div><div class="ttdeci">z3::context & getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00076">ExeState.h:76</a></div></div>
|
|
648
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
|
|
649
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a817a63e8330530cb18e077556f7ce518"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">SVF::SVFUtil::type2String</a></div><div class="ttdeci">const std::string type2String(const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
|
|
650
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00156">IRGraph.h:156</a></div></div>
|
|
651
|
+
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
652
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
653
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
|
|
654
|
+
<div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00096">SVFVariables.h:96</a></div></div>
|
|
655
|
+
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
656
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
657
|
+
<div class="ttc" id="classSVF_1_1SVFVar_html_adaaf24b8b6ec06476cea112533c24066"><div class="ttname"><a href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00105">SVFVariables.h:105</a></div></div>
|
|
658
|
+
</div><!-- fragment -->
|
|
659
|
+
</div>
|
|
660
|
+
</div>
|
|
661
|
+
<a id="a2d5f2c2de23c919a47432501c3ad8adb"></a>
|
|
662
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2d5f2c2de23c919a47432501c3ad8adb">◆ </a></span>isVirtualMemAddress()</h2>
|
|
663
|
+
|
|
664
|
+
<div class="memitem">
|
|
665
|
+
<div class="memproto">
|
|
666
|
+
<table class="mlabels">
|
|
667
|
+
<tr>
|
|
668
|
+
<td class="mlabels-left">
|
|
669
|
+
<table class="memname">
|
|
670
|
+
<tr>
|
|
671
|
+
<td class="memname">bool SVF::ExeState::isVirtualMemAddress </td>
|
|
672
|
+
<td>(</td>
|
|
673
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
674
|
+
<td class="paramname"><em>val</em></td><td>)</td>
|
|
675
|
+
<td></td>
|
|
676
|
+
</tr>
|
|
677
|
+
</table>
|
|
678
|
+
</td>
|
|
679
|
+
<td class="mlabels-right">
|
|
680
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
681
|
+
</tr>
|
|
682
|
+
</table>
|
|
683
|
+
</div><div class="memdoc">
|
|
684
|
+
|
|
685
|
+
<p>Check bit value of val start with 0x7F000000, filter by 0xFF000000. </p>
|
|
686
|
+
|
|
687
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00121">121</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
688
|
+
<div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> (val & 0xff000000) == <a class="code" href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="ttc" id="ExeState_8h_html_a9c5bf91d8f58ded0fd8f57c04f26b56f"><div class="ttname"><a href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a></div><div class="ttdeci">#define AddressMask</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00036">ExeState.h:36</a></div></div>
|
|
689
|
+
</div><!-- fragment -->
|
|
690
|
+
</div>
|
|
691
|
+
</div>
|
|
692
|
+
<a id="a80bd7f3746198459bbcb59274cebc013"></a>
|
|
693
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a80bd7f3746198459bbcb59274cebc013">◆ </a></span>load() <span class="overload">[1/2]</span></h2>
|
|
694
|
+
|
|
695
|
+
<div class="memitem">
|
|
696
|
+
<div class="memproto">
|
|
697
|
+
<table class="memname">
|
|
698
|
+
<tr>
|
|
699
|
+
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & ExeState::load </td>
|
|
700
|
+
<td>(</td>
|
|
701
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
702
|
+
<td class="paramname"><em>loc</em></td><td>)</td>
|
|
703
|
+
<td></td>
|
|
704
|
+
</tr>
|
|
705
|
+
</table>
|
|
706
|
+
</div><div class="memdoc">
|
|
707
|
+
|
|
708
|
+
<p>Load value at location. </p>
|
|
709
|
+
<p>Load value at location </p><dl class="params"><dt>Parameters</dt><dd>
|
|
710
|
+
<table class="params">
|
|
711
|
+
<tr><td class="paramname">loc</td><td>location, e.g., int_val(0x7f..01) </td></tr>
|
|
712
|
+
</table>
|
|
713
|
+
</dd>
|
|
714
|
+
</dl>
|
|
715
|
+
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
|
|
716
|
+
|
|
717
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00225">225</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
718
|
+
<div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() && <span class="stringliteral">"location must be numeral"</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = <a class="code" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a>(loc);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">isVirtualMemAddress</a>(virAddr) && <span class="stringliteral">"Pointer operand is not a physical address?"</span>);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a>(virAddr);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a>(objId) == objId && <span class="stringliteral">"SVFVar idx overflow > 0x7f000000?"</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">load</a>(objId);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00102">Z3Expr.h:102</a></div></div>
|
|
719
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a80bd7f3746198459bbcb59274cebc013"><div class="ttname"><a href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr & load(const Z3Expr &loc)</div><div class="ttdoc">Load value at location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00225">ExeState.cpp:225</a></div></div>
|
|
720
|
+
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
721
|
+
<div class="ttc" id="namespaceSVF_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="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
|
|
722
|
+
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
723
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ab931a1b6a85d3db047bc50741a22c8a6"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">SVF::ExeState::z3Expr2NumValue</a></div><div class="ttdeci">s32_t z3Expr2NumValue(const Z3Expr &e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00131">ExeState.h:131</a></div></div>
|
|
724
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2d5f2c2de23c919a47432501c3ad8adb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00121">ExeState.h:121</a></div></div>
|
|
725
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2535d6ef4a91b2bd2366b6a89265ab91"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">SVF::ExeState::getInternalID</a></div><div class="ttdeci">u32_t getInternalID(u32_t idx) const</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00126">ExeState.h:126</a></div></div>
|
|
726
|
+
</div><!-- fragment -->
|
|
727
|
+
</div>
|
|
728
|
+
</div>
|
|
729
|
+
<a id="a8b58d74bd718d66cde9ad7e868d6137a"></a>
|
|
730
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8b58d74bd718d66cde9ad7e868d6137a">◆ </a></span>load() <span class="overload">[2/2]</span></h2>
|
|
731
|
+
|
|
732
|
+
<div class="memitem">
|
|
733
|
+
<div class="memproto">
|
|
734
|
+
<table class="mlabels">
|
|
735
|
+
<tr>
|
|
736
|
+
<td class="mlabels-left">
|
|
737
|
+
<table class="memname">
|
|
738
|
+
<tr>
|
|
739
|
+
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& SVF::ExeState::load </td>
|
|
740
|
+
<td>(</td>
|
|
741
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
742
|
+
<td class="paramname"><em>objId</em></td><td>)</td>
|
|
743
|
+
<td></td>
|
|
744
|
+
</tr>
|
|
745
|
+
</table>
|
|
746
|
+
</td>
|
|
747
|
+
<td class="mlabels-right">
|
|
748
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
|
|
749
|
+
</tr>
|
|
750
|
+
</table>
|
|
751
|
+
</div><div class="memdoc">
|
|
752
|
+
|
|
753
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00144">144</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
754
|
+
<div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>[objId];</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
755
|
+
</div><!-- fragment -->
|
|
756
|
+
</div>
|
|
757
|
+
</div>
|
|
758
|
+
<a id="a4ee62e9c0cc0eb34c72effc2c203506a"></a>
|
|
759
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a4ee62e9c0cc0eb34c72effc2c203506a">◆ </a></span>operator!=()</h2>
|
|
760
|
+
|
|
761
|
+
<div class="memitem">
|
|
762
|
+
<div class="memproto">
|
|
763
|
+
<table class="mlabels">
|
|
764
|
+
<tr>
|
|
765
|
+
<td class="mlabels-left">
|
|
766
|
+
<table class="memname">
|
|
767
|
+
<tr>
|
|
768
|
+
<td class="memname">bool SVF::ExeState::operator!= </td>
|
|
769
|
+
<td>(</td>
|
|
770
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td>
|
|
771
|
+
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
772
|
+
<td> const</td>
|
|
773
|
+
</tr>
|
|
774
|
+
</table>
|
|
775
|
+
</td>
|
|
776
|
+
<td class="mlabels-right">
|
|
777
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
778
|
+
</tr>
|
|
779
|
+
</table>
|
|
780
|
+
</div><div class="memdoc">
|
|
781
|
+
|
|
782
|
+
<p>Overloading Operator!=. </p>
|
|
783
|
+
|
|
784
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00069">69</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
785
|
+
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div></div><!-- fragment -->
|
|
786
|
+
</div>
|
|
787
|
+
</div>
|
|
788
|
+
<a id="a10a12722f1974d466ef07a35d9dff108"></a>
|
|
789
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a10a12722f1974d466ef07a35d9dff108">◆ </a></span>operator<()</h2>
|
|
790
|
+
|
|
791
|
+
<div class="memitem">
|
|
792
|
+
<div class="memproto">
|
|
793
|
+
<table class="memname">
|
|
794
|
+
<tr>
|
|
795
|
+
<td class="memname">bool ExeState::operator< </td>
|
|
796
|
+
<td>(</td>
|
|
797
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td>
|
|
798
|
+
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
799
|
+
<td> const</td>
|
|
800
|
+
</tr>
|
|
801
|
+
</table>
|
|
802
|
+
</div><div class="memdoc">
|
|
803
|
+
|
|
804
|
+
<p>Overloading Operator==. </p>
|
|
805
|
+
<p>Overloading Operator< </p><dl class="params"><dt>Parameters</dt><dd>
|
|
806
|
+
<table class="params">
|
|
807
|
+
<tr><td class="paramname">rhs</td><td></td></tr>
|
|
808
|
+
</table>
|
|
809
|
+
</dd>
|
|
810
|
+
</dl>
|
|
811
|
+
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
|
|
812
|
+
|
|
813
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00181">181</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
814
|
+
<div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// judge from path constraint</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (!eq(<a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>.<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>() < rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>.size() < rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() || <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>.size() < rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().size())</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &item: <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">auto</span> it = rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().find(item.first);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// lhs > rhs if SVFVar not exists in rhs</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> (it == rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().end())</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// judge from expr id</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (!eq(item.second, it->second))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> item.second.id() < it->second.id();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &item: <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">auto</span> it = rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().find(item.first);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// lhs > rhs if SVFVar not exists in rhs</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (it == rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().end())</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="comment">// judge from expr id</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span> (!eq(item.second, it->second))</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> item.second.id() < it->second.id();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div><div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap & getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00084">ExeState.h:84</a></div></div>
|
|
815
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
816
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
817
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr & getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00088">ExeState.h:88</a></div></div>
|
|
818
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
|
|
819
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
820
|
+
<div class="ttc" id="classSVF_1_1Z3Expr_html_acdb4fbb53f19bac033e79cfe96ce82ca"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">SVF::Z3Expr::id</a></div><div class="ttdeci">u32_t id() const</div><div class="ttdoc">get id </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00094">Z3Expr.h:94</a></div></div>
|
|
821
|
+
</div><!-- fragment -->
|
|
822
|
+
</div>
|
|
823
|
+
</div>
|
|
824
|
+
<a id="a0c6a0cd40fc94cc2c3829d6ae0a21270"></a>
|
|
825
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0c6a0cd40fc94cc2c3829d6ae0a21270">◆ </a></span>operator=()</h2>
|
|
826
|
+
|
|
827
|
+
<div class="memitem">
|
|
828
|
+
<div class="memproto">
|
|
829
|
+
<table class="memname">
|
|
830
|
+
<tr>
|
|
831
|
+
<td class="memname"><a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & ExeState::operator= </td>
|
|
832
|
+
<td>(</td>
|
|
833
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td>
|
|
834
|
+
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
835
|
+
<td></td>
|
|
836
|
+
</tr>
|
|
837
|
+
</table>
|
|
838
|
+
</div><div class="memdoc">
|
|
839
|
+
|
|
840
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00135">135</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
841
|
+
<div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> (*<span class="keyword">this</span> != rhs) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a> = rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a> = rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a> = rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</div><div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap & getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00084">ExeState.h:84</a></div></div>
|
|
842
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
843
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
844
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr & getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00088">ExeState.h:88</a></div></div>
|
|
845
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
|
|
846
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
847
|
+
</div><!-- fragment -->
|
|
848
|
+
</div>
|
|
849
|
+
</div>
|
|
850
|
+
<a id="a0e4c8a41aa861ff2862d8b620c902f21"></a>
|
|
851
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0e4c8a41aa861ff2862d8b620c902f21">◆ </a></span>operator==()</h2>
|
|
852
|
+
|
|
853
|
+
<div class="memitem">
|
|
854
|
+
<div class="memproto">
|
|
855
|
+
<table class="memname">
|
|
856
|
+
<tr>
|
|
857
|
+
<td class="memname">bool ExeState::operator== </td>
|
|
858
|
+
<td>(</td>
|
|
859
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">ExeState</a> & </td>
|
|
860
|
+
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
861
|
+
<td> const</td>
|
|
862
|
+
</tr>
|
|
863
|
+
</table>
|
|
864
|
+
</div><div class="memdoc">
|
|
865
|
+
|
|
866
|
+
<p>Overloading Operator==. </p>
|
|
867
|
+
<p>Overloading Operator== </p><dl class="params"><dt>Parameters</dt><dd>
|
|
868
|
+
<table class="params">
|
|
869
|
+
<tr><td class="paramname">rhs</td><td></td></tr>
|
|
870
|
+
</table>
|
|
871
|
+
</dd>
|
|
872
|
+
</dl>
|
|
873
|
+
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
|
|
874
|
+
|
|
875
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00149">149</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
876
|
+
<div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// return false if path constraint is not equivalent</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (!eq(<a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()))</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>.size() != rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() || <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>.size() != rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().size())</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &item: <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">auto</span> it = rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().find(item.first);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// return false if SVFVar not exists in rhs</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (it == rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().end())</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="comment">// return false if Z3Expr is not equivalent</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (!eq(item.second, it->second))</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &item: <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">auto</span> it = rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().find(item.first);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// return false if location not exists in rhs</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (it == rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>().end())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// return false if Z3Expr is not equivalent</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (!eq(item.second, it->second))</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div><div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap & getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00084">ExeState.h:84</a></div></div>
|
|
877
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
878
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
|
|
879
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr & getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00088">ExeState.h:88</a></div></div>
|
|
880
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
|
|
881
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
882
|
+
</div><!-- fragment -->
|
|
883
|
+
</div>
|
|
884
|
+
</div>
|
|
885
|
+
<a id="af539858577135d706304bb0703f1530d"></a>
|
|
886
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af539858577135d706304bb0703f1530d">◆ </a></span>operator[]()</h2>
|
|
887
|
+
|
|
888
|
+
<div class="memitem">
|
|
889
|
+
<div class="memproto">
|
|
890
|
+
<table class="mlabels">
|
|
891
|
+
<tr>
|
|
892
|
+
<td class="mlabels-left">
|
|
893
|
+
<table class="memname">
|
|
894
|
+
<tr>
|
|
895
|
+
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& SVF::ExeState::operator[] </td>
|
|
896
|
+
<td>(</td>
|
|
897
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
898
|
+
<td class="paramname"><em>varId</em></td><td>)</td>
|
|
899
|
+
<td></td>
|
|
900
|
+
</tr>
|
|
901
|
+
</table>
|
|
902
|
+
</td>
|
|
903
|
+
<td class="mlabels-right">
|
|
904
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
905
|
+
</tr>
|
|
906
|
+
</table>
|
|
907
|
+
</div><div class="memdoc">
|
|
908
|
+
|
|
909
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00096">96</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
910
|
+
<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">getZ3Expr</a>(varId);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_ab52debe3aae77d1efd5de4d220dbed2f"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">SVF::ExeState::getZ3Expr</a></div><div class="ttdeci">Z3Expr & getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression based on SVFVar ID. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00116">ExeState.cpp:116</a></div></div>
|
|
911
|
+
</div><!-- fragment -->
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<a id="aee8eece3daa2b7cbebb8dcde761931c2"></a>
|
|
915
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aee8eece3daa2b7cbebb8dcde761931c2">◆ </a></span>printExprValues()</h2>
|
|
916
|
+
|
|
917
|
+
<div class="memitem">
|
|
918
|
+
<div class="memproto">
|
|
919
|
+
<table class="memname">
|
|
920
|
+
<tr>
|
|
921
|
+
<td class="memname">void ExeState::printExprValues </td>
|
|
922
|
+
<td>(</td>
|
|
923
|
+
<td class="paramname"></td><td>)</td>
|
|
924
|
+
<td></td>
|
|
925
|
+
</tr>
|
|
926
|
+
</table>
|
|
927
|
+
</div><div class="memdoc">
|
|
928
|
+
|
|
929
|
+
<p>Print values of all expressions. </p>
|
|
930
|
+
<p>Print values of all expressions </p>
|
|
931
|
+
|
|
932
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00237">237</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
933
|
+
<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  std::cout.flags(std::ios::left);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  std::cout << <span class="stringliteral">"-----------Var and Value-----------\n"</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &item: <a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  std::stringstream exprName;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  exprName << <span class="stringliteral">"Var"</span> << item.first;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  std::cout << std::setw(25) << exprName.str();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &sim = item.second.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span> (sim.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() && <a class="code" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">isVirtualMemAddress</a>(<a class="code" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a>(sim))) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  std::cout << <span class="stringliteral">"\t Value: "</span> << std::hex << <span class="stringliteral">"0x"</span> << <a class="code" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a>(sim) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  std::cout << <span class="stringliteral">"\t Value: "</span> << std::dec << sim << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  std::cout << <span class="stringliteral">"-----------------------------------------\n"</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00102">Z3Expr.h:102</a></div></div>
|
|
934
|
+
<div class="ttc" id="classSVF_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#l00037">Z3Expr.h:37</a></div></div>
|
|
935
|
+
<div class="ttc" id="classSVF_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#l00110">Z3Expr.h:110</a></div></div>
|
|
936
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
|
|
937
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ab931a1b6a85d3db047bc50741a22c8a6"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">SVF::ExeState::z3Expr2NumValue</a></div><div class="ttdeci">s32_t z3Expr2NumValue(const Z3Expr &e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00131">ExeState.h:131</a></div></div>
|
|
938
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2d5f2c2de23c919a47432501c3ad8adb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00121">ExeState.h:121</a></div></div>
|
|
939
|
+
</div><!-- fragment -->
|
|
940
|
+
</div>
|
|
941
|
+
</div>
|
|
942
|
+
<a id="abb73aa9e213818e89e1fb8abdd7a3309"></a>
|
|
943
|
+
<h2 class="memtitle"><span class="permalink"><a href="#abb73aa9e213818e89e1fb8abdd7a3309">◆ </a></span>setPathConstraint()</h2>
|
|
944
|
+
|
|
945
|
+
<div class="memitem">
|
|
946
|
+
<div class="memproto">
|
|
947
|
+
<table class="mlabels">
|
|
948
|
+
<tr>
|
|
949
|
+
<td class="mlabels-left">
|
|
950
|
+
<table class="memname">
|
|
951
|
+
<tr>
|
|
952
|
+
<td class="memname">void SVF::ExeState::setPathConstraint </td>
|
|
953
|
+
<td>(</td>
|
|
954
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
955
|
+
<td class="paramname"><em>pc</em></td><td>)</td>
|
|
956
|
+
<td></td>
|
|
957
|
+
</tr>
|
|
958
|
+
</table>
|
|
959
|
+
</td>
|
|
960
|
+
<td class="mlabels-right">
|
|
961
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
962
|
+
</tr>
|
|
963
|
+
</table>
|
|
964
|
+
</div><div class="memdoc">
|
|
965
|
+
|
|
966
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00092">92</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
967
|
+
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a> = pc.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
|
|
968
|
+
<div class="ttc" id="classSVF_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#l00110">Z3Expr.h:110</a></div></div>
|
|
969
|
+
</div><!-- fragment -->
|
|
970
|
+
</div>
|
|
971
|
+
</div>
|
|
972
|
+
<a id="a08db85e0e599d17b54743feb03a7717a"></a>
|
|
973
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a08db85e0e599d17b54743feb03a7717a">◆ </a></span>store() <span class="overload">[1/2]</span></h2>
|
|
974
|
+
|
|
975
|
+
<div class="memitem">
|
|
976
|
+
<div class="memproto">
|
|
977
|
+
<table class="memname">
|
|
978
|
+
<tr>
|
|
979
|
+
<td class="memname">void ExeState::store </td>
|
|
980
|
+
<td>(</td>
|
|
981
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
982
|
+
<td class="paramname"><em>loc</em>, </td>
|
|
983
|
+
</tr>
|
|
984
|
+
<tr>
|
|
985
|
+
<td class="paramkey"></td>
|
|
986
|
+
<td></td>
|
|
987
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
988
|
+
<td class="paramname"><em>value</em> </td>
|
|
989
|
+
</tr>
|
|
990
|
+
<tr>
|
|
991
|
+
<td></td>
|
|
992
|
+
<td>)</td>
|
|
993
|
+
<td></td><td></td>
|
|
994
|
+
</tr>
|
|
995
|
+
</table>
|
|
996
|
+
</div><div class="memdoc">
|
|
997
|
+
|
|
998
|
+
<p>Store value to location. </p>
|
|
999
|
+
<p>Store value to location </p><dl class="params"><dt>Parameters</dt><dd>
|
|
1000
|
+
<table class="params">
|
|
1001
|
+
<tr><td class="paramname">loc</td><td>location, e.g., int_val(0x7f..01) </td></tr>
|
|
1002
|
+
<tr><td class="paramname">value</td><td></td></tr>
|
|
1003
|
+
</table>
|
|
1004
|
+
</dd>
|
|
1005
|
+
</dl>
|
|
1006
|
+
|
|
1007
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8cpp_source.html#l00213">213</a> of file <a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a>.</p>
|
|
1008
|
+
<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() && <span class="stringliteral">"location must be numeral"</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = <a class="code" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a>(loc);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">isVirtualMemAddress</a>(virAddr) && <span class="stringliteral">"Pointer operand is not a physical address?"</span>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">store</a>(<a class="code" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a>(virAddr), value);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00102">Z3Expr.h:102</a></div></div>
|
|
1009
|
+
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1010
|
+
<div class="ttc" id="namespaceSVF_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="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
|
|
1011
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a08db85e0e599d17b54743feb03a7717a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">SVF::ExeState::store</a></div><div class="ttdeci">void store(const Z3Expr &loc, const Z3Expr &value)</div><div class="ttdoc">Store value to location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00213">ExeState.cpp:213</a></div></div>
|
|
1012
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_ab931a1b6a85d3db047bc50741a22c8a6"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">SVF::ExeState::z3Expr2NumValue</a></div><div class="ttdeci">s32_t z3Expr2NumValue(const Z3Expr &e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00131">ExeState.h:131</a></div></div>
|
|
1013
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2d5f2c2de23c919a47432501c3ad8adb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00121">ExeState.h:121</a></div></div>
|
|
1014
|
+
<div class="ttc" id="classSVF_1_1ExeState_html_a2535d6ef4a91b2bd2366b6a89265ab91"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">SVF::ExeState::getInternalID</a></div><div class="ttdeci">u32_t getInternalID(u32_t idx) const</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00126">ExeState.h:126</a></div></div>
|
|
1015
|
+
</div><!-- fragment -->
|
|
1016
|
+
</div>
|
|
1017
|
+
</div>
|
|
1018
|
+
<a id="ade4fc12b40dd05bf840c313f2b723879"></a>
|
|
1019
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ade4fc12b40dd05bf840c313f2b723879">◆ </a></span>store() <span class="overload">[2/2]</span></h2>
|
|
1020
|
+
|
|
1021
|
+
<div class="memitem">
|
|
1022
|
+
<div class="memproto">
|
|
1023
|
+
<table class="mlabels">
|
|
1024
|
+
<tr>
|
|
1025
|
+
<td class="mlabels-left">
|
|
1026
|
+
<table class="memname">
|
|
1027
|
+
<tr>
|
|
1028
|
+
<td class="memname">void SVF::ExeState::store </td>
|
|
1029
|
+
<td>(</td>
|
|
1030
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
1031
|
+
<td class="paramname"><em>objId</em>, </td>
|
|
1032
|
+
</tr>
|
|
1033
|
+
<tr>
|
|
1034
|
+
<td class="paramkey"></td>
|
|
1035
|
+
<td></td>
|
|
1036
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
1037
|
+
<td class="paramname"><em>z3Expr</em> </td>
|
|
1038
|
+
</tr>
|
|
1039
|
+
<tr>
|
|
1040
|
+
<td></td>
|
|
1041
|
+
<td>)</td>
|
|
1042
|
+
<td></td><td></td>
|
|
1043
|
+
</tr>
|
|
1044
|
+
</table>
|
|
1045
|
+
</td>
|
|
1046
|
+
<td class="mlabels-right">
|
|
1047
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
|
|
1048
|
+
</tr>
|
|
1049
|
+
</table>
|
|
1050
|
+
</div><div class="memdoc">
|
|
1051
|
+
|
|
1052
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00140">140</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1053
|
+
<div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>[objId] = z3Expr.simplify();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
|
|
1054
|
+
</div><!-- fragment -->
|
|
1055
|
+
</div>
|
|
1056
|
+
</div>
|
|
1057
|
+
<a id="ab931a1b6a85d3db047bc50741a22c8a6"></a>
|
|
1058
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab931a1b6a85d3db047bc50741a22c8a6">◆ </a></span>z3Expr2NumValue()</h2>
|
|
1059
|
+
|
|
1060
|
+
<div class="memitem">
|
|
1061
|
+
<div class="memproto">
|
|
1062
|
+
<table class="mlabels">
|
|
1063
|
+
<tr>
|
|
1064
|
+
<td class="mlabels-left">
|
|
1065
|
+
<table class="memname">
|
|
1066
|
+
<tr>
|
|
1067
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> SVF::ExeState::z3Expr2NumValue </td>
|
|
1068
|
+
<td>(</td>
|
|
1069
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> & </td>
|
|
1070
|
+
<td class="paramname"><em>e</em></td><td>)</td>
|
|
1071
|
+
<td></td>
|
|
1072
|
+
</tr>
|
|
1073
|
+
</table>
|
|
1074
|
+
</td>
|
|
1075
|
+
<td class="mlabels-right">
|
|
1076
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
1077
|
+
</tr>
|
|
1078
|
+
</table>
|
|
1079
|
+
</div><div class="memdoc">
|
|
1080
|
+
|
|
1081
|
+
<p>Return int value from an expression if it is a numeral, otherwise return an approximate value. </p>
|
|
1082
|
+
|
|
1083
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00131">131</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1084
|
+
<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(e.is_numeral() && <span class="stringliteral">"not numeral?"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> e.get_numeral_int64();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1085
|
+
</div><!-- fragment -->
|
|
1086
|
+
</div>
|
|
1087
|
+
</div>
|
|
1088
|
+
<h2 class="groupheader">Member Data Documentation</h2>
|
|
1089
|
+
<a id="a55464ae666ae16656ad8903894ec14da"></a>
|
|
1090
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a55464ae666ae16656ad8903894ec14da">◆ </a></span>locToVal</h2>
|
|
1091
|
+
|
|
1092
|
+
<div class="memitem">
|
|
1093
|
+
<div class="memproto">
|
|
1094
|
+
<table class="mlabels">
|
|
1095
|
+
<tr>
|
|
1096
|
+
<td class="mlabels-left">
|
|
1097
|
+
<table class="memname">
|
|
1098
|
+
<tr>
|
|
1099
|
+
<td class="memname"><a class="el" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a> SVF::ExeState::locToVal</td>
|
|
1100
|
+
</tr>
|
|
1101
|
+
</table>
|
|
1102
|
+
</td>
|
|
1103
|
+
<td class="mlabels-right">
|
|
1104
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
1105
|
+
</tr>
|
|
1106
|
+
</table>
|
|
1107
|
+
</div><div class="memdoc">
|
|
1108
|
+
|
|
1109
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00046">46</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1110
|
+
|
|
1111
|
+
</div>
|
|
1112
|
+
</div>
|
|
1113
|
+
<a id="a7a9c5c2275246a43414503f6822073b1"></a>
|
|
1114
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7a9c5c2275246a43414503f6822073b1">◆ </a></span>pathConstraint</h2>
|
|
1115
|
+
|
|
1116
|
+
<div class="memitem">
|
|
1117
|
+
<div class="memproto">
|
|
1118
|
+
<table class="mlabels">
|
|
1119
|
+
<tr>
|
|
1120
|
+
<td class="mlabels-left">
|
|
1121
|
+
<table class="memname">
|
|
1122
|
+
<tr>
|
|
1123
|
+
<td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> SVF::ExeState::pathConstraint</td>
|
|
1124
|
+
</tr>
|
|
1125
|
+
</table>
|
|
1126
|
+
</td>
|
|
1127
|
+
<td class="mlabels-right">
|
|
1128
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
1129
|
+
</tr>
|
|
1130
|
+
</table>
|
|
1131
|
+
</div><div class="memdoc">
|
|
1132
|
+
|
|
1133
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00047">47</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1134
|
+
|
|
1135
|
+
</div>
|
|
1136
|
+
</div>
|
|
1137
|
+
<a id="a32a5c65de2656ecfd2e33100a44dc02f"></a>
|
|
1138
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a32a5c65de2656ecfd2e33100a44dc02f">◆ </a></span>varToVal</h2>
|
|
1139
|
+
|
|
1140
|
+
<div class="memitem">
|
|
1141
|
+
<div class="memproto">
|
|
1142
|
+
<table class="mlabels">
|
|
1143
|
+
<tr>
|
|
1144
|
+
<td class="mlabels-left">
|
|
1145
|
+
<table class="memname">
|
|
1146
|
+
<tr>
|
|
1147
|
+
<td class="memname"><a class="el" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> SVF::ExeState::varToVal</td>
|
|
1148
|
+
</tr>
|
|
1149
|
+
</table>
|
|
1150
|
+
</td>
|
|
1151
|
+
<td class="mlabels-right">
|
|
1152
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
1153
|
+
</tr>
|
|
1154
|
+
</table>
|
|
1155
|
+
</div><div class="memdoc">
|
|
1156
|
+
|
|
1157
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00045">45</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1158
|
+
|
|
1159
|
+
</div>
|
|
1160
|
+
</div>
|
|
1161
|
+
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
1162
|
+
<li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="ExeState_8h_source.html">ExeState.h</a></li>
|
|
1163
|
+
<li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a></li>
|
|
1164
|
+
</ul>
|
|
1165
|
+
</div><!-- contents -->
|
|
1166
|
+
<!-- start footer part -->
|
|
1167
|
+
<hr class="footer"/><address class="footer"><small>
|
|
1168
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
1169
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
1170
|
+
</a> 1.8.13
|
|
1171
|
+
</small></address>
|
|
1172
|
+
</body>
|
|
1173
|
+
</html>
|