svf-tools 1.0.438 → 1.0.439
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/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.html +2 -2
- 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 +21 -34
- 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 +2 -6
- 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 +13 -14
- 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 +1 -2
- 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/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 +248 -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,131 @@
|
|
|
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: std::hash< SVF::ExeState > Struct Template 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"><b>std</b></li><li class="navelem"><a class="el" href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html">hash< SVF::ExeState ></a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="summary">
|
|
66
|
+
<a href="#pub-methods">Public Member Functions</a> |
|
|
67
|
+
<a href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4-members.html">List of all members</a> </div>
|
|
68
|
+
<div class="headertitle">
|
|
69
|
+
<div class="title">std::hash< SVF::ExeState > Struct Template Reference</div> </div>
|
|
70
|
+
</div><!--header-->
|
|
71
|
+
<div class="contents">
|
|
72
|
+
|
|
73
|
+
<p><code>#include <<a class="el" href="ExeState_8h_source.html">ExeState.h</a>></code></p>
|
|
74
|
+
<table class="memberdecls">
|
|
75
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
76
|
+
Public Member Functions</h2></td></tr>
|
|
77
|
+
<tr class="memitem:a99f262842505ca11c987d68a790aee10"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html#a99f262842505ca11c987d68a790aee10">operator()</a> (const <a class="el" href="classSVF_1_1ExeState.html">SVF::ExeState</a> &exeState) const</td></tr>
|
|
78
|
+
<tr class="separator:a99f262842505ca11c987d68a790aee10"><td class="memSeparator" colspan="2"> </td></tr>
|
|
79
|
+
</table>
|
|
80
|
+
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
81
|
+
<div class="textblock"><h3>template<><br />
|
|
82
|
+
struct std::hash< SVF::ExeState ></h3>
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00151">151</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
86
|
+
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
87
|
+
<a id="a99f262842505ca11c987d68a790aee10"></a>
|
|
88
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a99f262842505ca11c987d68a790aee10">◆ </a></span>operator()()</h2>
|
|
89
|
+
|
|
90
|
+
<div class="memitem">
|
|
91
|
+
<div class="memproto">
|
|
92
|
+
<table class="mlabels">
|
|
93
|
+
<tr>
|
|
94
|
+
<td class="mlabels-left">
|
|
95
|
+
<table class="memname">
|
|
96
|
+
<tr>
|
|
97
|
+
<td class="memname">size_t std::hash< <a class="el" href="classSVF_1_1ExeState.html">SVF::ExeState</a> >::operator() </td>
|
|
98
|
+
<td>(</td>
|
|
99
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1ExeState.html">SVF::ExeState</a> & </td>
|
|
100
|
+
<td class="paramname"><em>exeState</em></td><td>)</td>
|
|
101
|
+
<td> const</td>
|
|
102
|
+
</tr>
|
|
103
|
+
</table>
|
|
104
|
+
</td>
|
|
105
|
+
<td class="mlabels-right">
|
|
106
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
107
|
+
</tr>
|
|
108
|
+
</table>
|
|
109
|
+
</div><div class="memdoc">
|
|
110
|
+
|
|
111
|
+
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00152">152</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
112
|
+
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">size_t</span> h = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="structSVF_1_1Hash.html">SVF::Hash<SVF::u32_t></a> hf;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &t: exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  h ^= hf(t.first) + 0x9e3779b9 + (h << 6) + (h >> 2);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  h ^= hf(t.second.id()) + 0x9e3779b9 + (h << 6) + (h >> 2);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordtype">size_t</span> h2 = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &t: exeState.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  h2 ^= hf(t.first) + 0x9e3779b9 + (h2 << 6) + (h2 >> 2);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 << 6) + (h2 >> 2);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="structSVF_1_1Hash.html">SVF::Hash<std::pair<SVF::u32_t, SVF::u32_t></a>> pairH;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> pairH(make_pair(pairH(make_pair(h, h2)), exeState.<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="l00170"></a><span class="lineno"> 170</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>
|
|
113
|
+
<div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00056">SVFBasicTypes.h:56</a></div></div>
|
|
114
|
+
<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>
|
|
115
|
+
<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>
|
|
116
|
+
<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>
|
|
117
|
+
</div><!-- fragment -->
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
<hr/>The documentation for this struct was generated from the following file:<ul>
|
|
121
|
+
<li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="ExeState_8h_source.html">ExeState.h</a></li>
|
|
122
|
+
</ul>
|
|
123
|
+
</div><!-- contents -->
|
|
124
|
+
<!-- start footer part -->
|
|
125
|
+
<hr class="footer"/><address class="footer"><small>
|
|
126
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
127
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
128
|
+
</a> 1.8.13
|
|
129
|
+
</small></address>
|
|
130
|
+
</body>
|
|
131
|
+
</html>
|
|
@@ -0,0 +1,81 @@
|
|
|
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: Member List</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"><b>std</b></li><li class="navelem"><a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html">hash< SVF::Z3Expr ></a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="headertitle">
|
|
66
|
+
<div class="title">std::hash< SVF::Z3Expr > Member List</div> </div>
|
|
67
|
+
</div><!--header-->
|
|
68
|
+
<div class="contents">
|
|
69
|
+
|
|
70
|
+
<p>This is the complete list of members for <a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html">std::hash< SVF::Z3Expr ></a>, including all inherited members.</p>
|
|
71
|
+
<table class="directory">
|
|
72
|
+
<tr class="even"><td class="entry"><a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html#a5f22ba479b6e05b6d3932d65c7034ade">operator()</a>(const SVF::Z3Expr &z3Expr) const</td><td class="entry"><a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html">std::hash< SVF::Z3Expr ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
73
|
+
</table></div><!-- contents -->
|
|
74
|
+
<!-- start footer part -->
|
|
75
|
+
<hr class="footer"/><address class="footer"><small>
|
|
76
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
77
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
78
|
+
</a> 1.8.13
|
|
79
|
+
</small></address>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
|
@@ -0,0 +1,131 @@
|
|
|
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: std::hash< SVF::Z3Expr > Struct Template 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"><b>std</b></li><li class="navelem"><a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html">hash< SVF::Z3Expr ></a></li> </ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div><!-- top -->
|
|
64
|
+
<div class="header">
|
|
65
|
+
<div class="summary">
|
|
66
|
+
<a href="#pub-methods">Public Member Functions</a> |
|
|
67
|
+
<a href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4-members.html">List of all members</a> </div>
|
|
68
|
+
<div class="headertitle">
|
|
69
|
+
<div class="title">std::hash< SVF::Z3Expr > Struct Template Reference</div> </div>
|
|
70
|
+
</div><!--header-->
|
|
71
|
+
<div class="contents">
|
|
72
|
+
|
|
73
|
+
<p>Specialise hash for AbsCxtDPItem.
|
|
74
|
+
<a href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html#details">More...</a></p>
|
|
75
|
+
|
|
76
|
+
<p><code>#include <<a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>></code></p>
|
|
77
|
+
<table class="memberdecls">
|
|
78
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
79
|
+
Public Member Functions</h2></td></tr>
|
|
80
|
+
<tr class="memitem:a5f22ba479b6e05b6d3932d65c7034ade"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html#a5f22ba479b6e05b6d3932d65c7034ade">operator()</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a> &z3Expr) const</td></tr>
|
|
81
|
+
<tr class="separator:a5f22ba479b6e05b6d3932d65c7034ade"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
|
+
</table>
|
|
83
|
+
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
84
|
+
<div class="textblock"><h3>template<><br />
|
|
85
|
+
struct std::hash< SVF::Z3Expr ></h3>
|
|
86
|
+
|
|
87
|
+
<p>Specialise hash for AbsCxtDPItem. </p>
|
|
88
|
+
|
|
89
|
+
<p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00229">229</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
|
|
90
|
+
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
91
|
+
<a id="a5f22ba479b6e05b6d3932d65c7034ade"></a>
|
|
92
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a5f22ba479b6e05b6d3932d65c7034ade">◆ </a></span>operator()()</h2>
|
|
93
|
+
|
|
94
|
+
<div class="memitem">
|
|
95
|
+
<div class="memproto">
|
|
96
|
+
<table class="mlabels">
|
|
97
|
+
<tr>
|
|
98
|
+
<td class="mlabels-left">
|
|
99
|
+
<table class="memname">
|
|
100
|
+
<tr>
|
|
101
|
+
<td class="memname">size_t std::hash< <a class="el" href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a> >::operator() </td>
|
|
102
|
+
<td>(</td>
|
|
103
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a> & </td>
|
|
104
|
+
<td class="paramname"><em>z3Expr</em></td><td>)</td>
|
|
105
|
+
<td> const</td>
|
|
106
|
+
</tr>
|
|
107
|
+
</table>
|
|
108
|
+
</td>
|
|
109
|
+
<td class="mlabels-right">
|
|
110
|
+
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
111
|
+
</tr>
|
|
112
|
+
</table>
|
|
113
|
+
</div><div class="memdoc">
|
|
114
|
+
|
|
115
|
+
<p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00230">230</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
|
|
116
|
+
<div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> z3Expr.<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><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>
|
|
117
|
+
</div><!-- fragment -->
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
<hr/>The documentation for this struct was generated from the following file:<ul>
|
|
121
|
+
<li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a></li>
|
|
122
|
+
</ul>
|
|
123
|
+
</div><!-- contents -->
|
|
124
|
+
<!-- start footer part -->
|
|
125
|
+
<hr class="footer"/><address class="footer"><small>
|
|
126
|
+
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
127
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
128
|
+
</a> 1.8.13
|
|
129
|
+
</small></address>
|
|
130
|
+
</body>
|
|
131
|
+
</html>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
#include "Util/SVFModule.h"
|
|
34
34
|
#include "SVF-FE/DataFlowUtil.h"
|
|
35
35
|
#include "SVF-FE/BasicTypes.h"
|
|
36
|
-
#include "Util/
|
|
36
|
+
#include "Util/BDDExpr.h"
|
|
37
37
|
#include "Util/WorkList.h"
|
|
38
38
|
#include "Graphs/SVFG.h"
|
|
39
39
|
|
|
@@ -49,7 +49,7 @@ class PathCondAllocator
|
|
|
49
49
|
|
|
50
50
|
public:
|
|
51
51
|
|
|
52
|
-
typedef
|
|
52
|
+
typedef BDDExprManager::BDDExpr Condition; /// z3 condition
|
|
53
53
|
|
|
54
54
|
typedef Map<u32_t,Condition*> CondPosMap; ///< map a branch to its Condition
|
|
55
55
|
typedef Map<const BasicBlock*, CondPosMap > BBCondMap; // map bb to a Condition
|
|
@@ -133,7 +133,7 @@ public:
|
|
|
133
133
|
{
|
|
134
134
|
return condMgr->getCondInst(cond);
|
|
135
135
|
}
|
|
136
|
-
inline void setCondInst(const
|
|
136
|
+
inline void setCondInst(const Condition* cond, const Instruction* inst){
|
|
137
137
|
condMgr->setCondInst(cond, inst);
|
|
138
138
|
}
|
|
139
139
|
//@}
|
|
@@ -286,7 +286,7 @@ private:
|
|
|
286
286
|
const SVFGNode* curEvalSVFGNode{}; ///< current llvm value to evaluate branch condition when computing guards
|
|
287
287
|
|
|
288
288
|
protected:
|
|
289
|
-
|
|
289
|
+
BDDExprManager* condMgr; ///< z3 manager
|
|
290
290
|
BBCondMap bbConds; ///< map basic block to its successors/predecessors branch conditions
|
|
291
291
|
|
|
292
292
|
};
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
#ifndef SRCSNKANALYSIS_H_
|
|
31
31
|
#define SRCSNKANALYSIS_H_
|
|
32
32
|
|
|
33
|
-
#include "
|
|
33
|
+
#include "SrcSnkSolver.h"
|
|
34
34
|
#include "Graphs/SVFGOPT.h"
|
|
35
35
|
#include "SABER/ProgSlice.h"
|
|
36
36
|
#include "SABER/SaberSVFGBuilder.h"
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
namespace SVF
|
|
39
39
|
{
|
|
40
40
|
|
|
41
|
-
typedef
|
|
41
|
+
typedef SrcSnkSolver<SVFG*,CxtDPItem> CFLSrcSnkSolver;
|
|
42
42
|
|
|
43
43
|
/*!
|
|
44
44
|
* General source-sink analysis, which serves as a base analysis to be extended for various clients
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//===-
|
|
1
|
+
//===- SrcSnkSolver.h -- CFL reachability solver---------------------------------//
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
//===----------------------------------------------------------------------===//
|
|
22
22
|
|
|
23
23
|
/*
|
|
24
|
-
*
|
|
24
|
+
* SrcSnkSolver.h
|
|
25
25
|
*
|
|
26
26
|
* Created on: Apr 1, 2014
|
|
27
27
|
* Author: Yulei Sui
|
|
@@ -41,7 +41,7 @@ namespace SVF
|
|
|
41
41
|
* Extend this class for sophisticated CFL-reachability resolution (e.g. field, flow, path)
|
|
42
42
|
*/
|
|
43
43
|
template<class GraphType, class DPIm = DPItem>
|
|
44
|
-
class
|
|
44
|
+
class SrcSnkSolver
|
|
45
45
|
{
|
|
46
46
|
|
|
47
47
|
public:
|
|
@@ -62,11 +62,11 @@ public:
|
|
|
62
62
|
protected:
|
|
63
63
|
|
|
64
64
|
/// Constructor
|
|
65
|
-
|
|
65
|
+
SrcSnkSolver(): _graph(nullptr)
|
|
66
66
|
{
|
|
67
67
|
}
|
|
68
68
|
/// Destructor
|
|
69
|
-
virtual ~
|
|
69
|
+
virtual ~SrcSnkSolver()
|
|
70
70
|
{
|
|
71
71
|
}
|
|
72
72
|
/// Get/Set graph methods
|
|
File without changes
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
//===- BDDExpr.h -- Context/Path BDD conditions----------------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2017> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Condition.h
|
|
25
|
+
*
|
|
26
|
+
* Created on: Oct 19, 2021
|
|
27
|
+
* Author: Yulei and Xiao
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#ifndef BITVECTORCOND_H_
|
|
31
|
+
#define BITVECTORCOND_H_
|
|
32
|
+
|
|
33
|
+
#include "Util/BasicTypes.h"
|
|
34
|
+
#include <cstdio>
|
|
35
|
+
|
|
36
|
+
#include "CUDD/cuddInt.h"
|
|
37
|
+
#include "z3++.h"
|
|
38
|
+
|
|
39
|
+
namespace SVF {
|
|
40
|
+
|
|
41
|
+
class BDDExprManager {
|
|
42
|
+
public:
|
|
43
|
+
typedef DdNode BDDExpr;
|
|
44
|
+
typedef Map<u32_t, BDDExpr *> IndexToBDDExpr;
|
|
45
|
+
private:
|
|
46
|
+
static BDDExprManager *bddExprMgr;
|
|
47
|
+
IndexToBDDExpr indexToBddCondMap;
|
|
48
|
+
DdManager *m_bdd_mgr;
|
|
49
|
+
|
|
50
|
+
inline BDDExpr *BddOne() const {
|
|
51
|
+
return Cudd_ReadOne(m_bdd_mgr);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
inline BDDExpr *BddZero() const {
|
|
55
|
+
return Cudd_ReadLogicZero(m_bdd_mgr);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/// Constructor
|
|
59
|
+
BDDExprManager();
|
|
60
|
+
|
|
61
|
+
public:
|
|
62
|
+
typedef Map<const BDDExpr *, const Instruction *> CondToTermInstMap; // map a condition to its branch instruction
|
|
63
|
+
static u32_t totalCondNum; // a counter for fresh condition
|
|
64
|
+
/// Singleton design here to make sure we only have one instance during any analysis
|
|
65
|
+
//@{
|
|
66
|
+
static BDDExprManager *getBDDExprMgr();
|
|
67
|
+
|
|
68
|
+
static void releaseBDDExprMgr() {
|
|
69
|
+
delete bddExprMgr;
|
|
70
|
+
bddExprMgr = nullptr;
|
|
71
|
+
}
|
|
72
|
+
//@}
|
|
73
|
+
|
|
74
|
+
/// Destructor
|
|
75
|
+
virtual ~BDDExprManager();
|
|
76
|
+
|
|
77
|
+
BDDExpr *createCond(u32_t i) {
|
|
78
|
+
assert(indexToBddCondMap.find(i) == indexToBddCondMap.end() &&
|
|
79
|
+
"This should be fresh index to create new BDD");
|
|
80
|
+
BDDExpr *bddCond = Cudd_bddIthVar(m_bdd_mgr, i);
|
|
81
|
+
return indexToBddCondMap.emplace(i, bddCond).first->second;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/// Create a fresh condition to encode each program branch
|
|
85
|
+
virtual BDDExpr *createFreshBranchCond(const Instruction *inst);
|
|
86
|
+
|
|
87
|
+
/// Return the number of condition expressions
|
|
88
|
+
virtual inline u32_t getCondNumber() {
|
|
89
|
+
return Cudd_ReadNodeCount(m_bdd_mgr);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
/// Return the unique true condition
|
|
94
|
+
inline BDDExpr *getTrueCond() const {
|
|
95
|
+
return trueCond;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/// Return the unique false condition
|
|
99
|
+
inline BDDExpr *getFalseCond() const {
|
|
100
|
+
return falseCond;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/// Operations on conditions.
|
|
104
|
+
//@{
|
|
105
|
+
virtual BDDExpr *AND(BDDExpr *lhs, BDDExpr *rhs);
|
|
106
|
+
|
|
107
|
+
virtual BDDExpr *OR(BDDExpr *lhs, BDDExpr *rhs);
|
|
108
|
+
|
|
109
|
+
virtual BDDExpr *NEG(BDDExpr *lhs);
|
|
110
|
+
//@}
|
|
111
|
+
|
|
112
|
+
virtual bool isNegCond(const BDDExpr *cond) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/// Whether the condition is satisfiable
|
|
117
|
+
virtual bool isSatisfiable(const BDDExpr *cond) {
|
|
118
|
+
return cond != getFalseCond();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/// Whether lhs and rhs are equivalent branch conditions
|
|
122
|
+
virtual bool isEquivalentBranchCond(const BDDExpr *lhs, const BDDExpr *rhs){
|
|
123
|
+
return lhs == rhs;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/// Whether **All Paths** are reachable
|
|
127
|
+
bool isAllPathReachable(const BDDExpr *e);
|
|
128
|
+
|
|
129
|
+
/// Get condition using condition id (z3 ast id)
|
|
130
|
+
virtual BDDExpr *getCond(u32_t id) {
|
|
131
|
+
auto it = indexToBddCondMap.find(id);
|
|
132
|
+
assert(it != indexToBddCondMap.end() && "condition not found!");
|
|
133
|
+
return it->second;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/// Get/Set llvm conditional expression
|
|
137
|
+
//{@
|
|
138
|
+
inline const Instruction *getCondInst(const BDDExpr *cond) const {
|
|
139
|
+
CondToTermInstMap::const_iterator it = condToInstMap.find(cond);
|
|
140
|
+
assert(it != condToInstMap.end() && "this should be a fresh condition");
|
|
141
|
+
return it->second;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
inline void setCondInst(const BDDExpr *cond, const Instruction *inst) {
|
|
145
|
+
assert(condToInstMap.find(cond) == condToInstMap.end() && "this should be a fresh condition");
|
|
146
|
+
condToInstMap[cond] = inst;
|
|
147
|
+
}
|
|
148
|
+
//@}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Utilities for dumping conditions. These methods use global functions from CUDD
|
|
152
|
+
* package and they can be removed outside this class scope to be used by others.
|
|
153
|
+
*/
|
|
154
|
+
void ddClearFlag(BDDExpr *f) const;
|
|
155
|
+
|
|
156
|
+
void BddSupportStep(BDDExpr *f, NodeBS &support) const;
|
|
157
|
+
|
|
158
|
+
void extractSubConds(const BDDExpr *f, NodeBS &support) const;
|
|
159
|
+
|
|
160
|
+
void dump(const BDDExpr *lhs, OutStream &O);
|
|
161
|
+
|
|
162
|
+
std::string dumpStr(const BDDExpr *e) const;
|
|
163
|
+
|
|
164
|
+
inline std::string getMemUsage() {
|
|
165
|
+
return std::to_string(Cudd_ReadMemoryInUse(m_bdd_mgr));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
protected:
|
|
169
|
+
static BDDExpr *trueCond;
|
|
170
|
+
static BDDExpr *falseCond;
|
|
171
|
+
|
|
172
|
+
private:
|
|
173
|
+
|
|
174
|
+
CondToTermInstMap condToInstMap; ///< map condition to llvm instruction
|
|
175
|
+
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
} // End namespace SVF
|
|
181
|
+
|
|
182
|
+
#endif /* BITVECTORCOND_H_ */
|