svf-tools 1.0.418 → 1.0.421
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/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Conditions_8cpp.html +0 -1
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +58 -49
- package/SVF-doxygen/html/html/Conditions_8h.html +6 -2
- package/SVF-doxygen/html/html/Conditions_8h_source.html +68 -60
- 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/FSMPTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- 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 +114 -113
- package/SVF-doxygen/html/html/Options_8h.html +1 -0
- package/SVF-doxygen/html/html/Options_8h_source.html +117 -115
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +41 -23
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -74
- package/SVF-doxygen/html/html/PathDPItem_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- 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 +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +13 -13
- 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_source.html +1 -1
- 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/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/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/annotated.html +7 -5
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +23 -25
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -0
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -6
- package/SVF-doxygen/html/html/classSVF_1_1BDDExpr-members.html +92 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.html +304 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDManager-members.html +124 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +1139 -0
- package/SVF-doxygen/html/html/classSVF_1_1BDDManager.png +0 -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_1CondExpr-members.html +5 -8
- package/SVF-doxygen/html/html/classSVF_1_1CondExpr.html +22 -151
- package/SVF-doxygen/html/html/classSVF_1_1CondExpr.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +25 -36
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +276 -605
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.png +0 -0
- 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_1FIObjVar.html +1 -1
- 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_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
- 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 +103 -102
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +141 -115
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +189 -196
- 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 +20 -20
- 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.html +8 -8
- 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_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 +95 -0
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +396 -0
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1Z3Manager-members.html +122 -0
- package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +1066 -0
- package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.png +0 -0
- package/SVF-doxygen/html/html/classes.html +12 -11
- package/SVF-doxygen/html/html/functions_0x7e.html +9 -3
- package/SVF-doxygen/html/html/functions_a.html +4 -6
- package/SVF-doxygen/html/html/functions_b.html +33 -34
- package/SVF-doxygen/html/html/functions_c.html +43 -32
- package/SVF-doxygen/html/html/functions_d.html +5 -4
- package/SVF-doxygen/html/html/functions_e.html +8 -7
- package/SVF-doxygen/html/html/functions_enum.html +3 -0
- package/SVF-doxygen/html/html/functions_eval_b.html +6 -3
- package/SVF-doxygen/html/html/functions_eval_z.html +79 -0
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +8 -7
- package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -3
- package/SVF-doxygen/html/html/functions_func_b.html +10 -10
- package/SVF-doxygen/html/html/functions_func_c.html +23 -20
- package/SVF-doxygen/html/html/functions_func_d.html +5 -4
- package/SVF-doxygen/html/html/functions_func_e.html +3 -2
- package/SVF-doxygen/html/html/functions_func_g.html +33 -24
- package/SVF-doxygen/html/html/functions_func_i.html +17 -11
- package/SVF-doxygen/html/html/functions_func_n.html +4 -3
- package/SVF-doxygen/html/html/functions_func_o.html +4 -3
- package/SVF-doxygen/html/html/functions_func_p.html +3 -3
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_func_z.html +79 -0
- package/SVF-doxygen/html/html/functions_g.html +35 -26
- package/SVF-doxygen/html/html/functions_i.html +30 -15
- package/SVF-doxygen/html/html/functions_l.html +8 -8
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +4 -3
- package/SVF-doxygen/html/html/functions_o.html +9 -14
- package/SVF-doxygen/html/html/functions_p.html +10 -10
- package/SVF-doxygen/html/html/functions_r.html +7 -7
- package/SVF-doxygen/html/html/functions_rela.html +4 -0
- package/SVF-doxygen/html/html/functions_s.html +13 -15
- package/SVF-doxygen/html/html/functions_t.html +1 -3
- package/SVF-doxygen/html/html/functions_type_b.html +5 -6
- package/SVF-doxygen/html/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/html/functions_type_i.html +4 -1
- package/SVF-doxygen/html/html/functions_type_z.html +77 -0
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +6 -9
- package/SVF-doxygen/html/html/functions_vars_c.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
- package/SVF-doxygen/html/html/functions_z.html +16 -0
- package/SVF-doxygen/html/html/hierarchy.html +436 -434
- package/SVF-doxygen/html/html/menudata.js +5 -2
- package/SVF-doxygen/html/html/namespaceSVF.html +8 -4
- package/SVF-doxygen/html/html/search/all_1.js +1 -2
- package/SVF-doxygen/html/html/search/all_10.js +11 -11
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_1a.js +5 -0
- package/SVF-doxygen/html/html/search/all_1b.js +5 -3
- package/SVF-doxygen/html/html/search/all_2.js +10 -9
- package/SVF-doxygen/html/html/search/all_3.js +9 -7
- package/SVF-doxygen/html/html/search/all_4.js +3 -3
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +13 -11
- package/SVF-doxygen/html/html/search/all_9.js +8 -6
- package/SVF-doxygen/html/html/search/all_c.js +5 -5
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +4 -4
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_1.js +2 -2
- package/SVF-doxygen/html/html/search/classes_14.html +26 -0
- package/SVF-doxygen/html/html/search/classes_14.js +5 -0
- package/SVF-doxygen/html/html/search/enums_1.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_1.js +2 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.html +26 -0
- package/SVF-doxygen/html/html/search/enumvalues_14.js +5 -0
- package/SVF-doxygen/html/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/html/search/functions_1.js +5 -5
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_15.js +2 -0
- package/SVF-doxygen/html/html/search/functions_16.js +5 -3
- package/SVF-doxygen/html/html/search/functions_2.js +5 -5
- package/SVF-doxygen/html/html/search/functions_3.js +3 -3
- package/SVF-doxygen/html/html/search/functions_4.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +13 -11
- package/SVF-doxygen/html/html/search/functions_8.js +4 -4
- package/SVF-doxygen/html/html/search/functions_c.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +4 -4
- package/SVF-doxygen/html/html/search/related_0.js +2 -1
- package/SVF-doxygen/html/html/search/searchdata.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_16.html +26 -0
- package/SVF-doxygen/html/html/search/typedefs_16.js +4 -0
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -1
- package/SVF-doxygen/html/html/search/variables_1.js +0 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +2 -3
- package/SVF-doxygen/html/html/search/variables_3.js +2 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +2 -0
- package/SVF-doxygen/html/html/search/variables_d.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/include/SABER/PathCondAllocator.h +2 -3
- package/include/Util/Conditions.h +272 -166
- package/include/Util/Options.h +4 -0
- package/index.html +2 -0
- package/lib/SABER/PathCondAllocator.cpp +3 -0
- package/lib/Util/Conditions.cpp +245 -209
- package/lib/Util/Options.cpp +11 -0
- package/lib/WPA/Andersen.cpp +10 -9
- package/package.json +1 -1
|
@@ -66,102 +66,97 @@ $(function() {
|
|
|
66
66
|
<a href="#pub-types">Public Types</a> |
|
|
67
67
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
68
68
|
<a href="#pub-static-attribs">Static Public Attributes</a> |
|
|
69
|
-
<a href="#
|
|
69
|
+
<a href="#pro-methods">Protected Member Functions</a> |
|
|
70
|
+
<a href="#pro-static-attribs">Static Protected Attributes</a> |
|
|
70
71
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
71
72
|
<a href="#pri-static-attribs">Static Private Attributes</a> |
|
|
72
73
|
<a href="classSVF_1_1CondManager-members.html">List of all members</a> </div>
|
|
73
74
|
<div class="headertitle">
|
|
74
|
-
<div class="title">SVF::CondManager Class Reference</div> </div>
|
|
75
|
+
<div class="title">SVF::CondManager Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
|
|
75
76
|
</div><!--header-->
|
|
76
77
|
<div class="contents">
|
|
77
78
|
|
|
78
79
|
<p><code>#include <<a class="el" href="Conditions_8h_source.html">Conditions.h</a>></code></p>
|
|
80
|
+
<div class="dynheader">
|
|
81
|
+
Inheritance diagram for SVF::CondManager:</div>
|
|
82
|
+
<div class="dyncontent">
|
|
83
|
+
<div class="center">
|
|
84
|
+
<img src="classSVF_1_1CondManager.png" usemap="#SVF::CondManager_map" alt=""/>
|
|
85
|
+
<map id="SVF::CondManager_map" name="SVF::CondManager_map">
|
|
86
|
+
<area href="classSVF_1_1BDDManager.html" alt="SVF::BDDManager" shape="rect" coords="0,56,124,80"/>
|
|
87
|
+
<area href="classSVF_1_1Z3Manager.html" alt="SVF::Z3Manager" shape="rect" coords="134,56,258,80"/>
|
|
88
|
+
</map>
|
|
89
|
+
</div></div>
|
|
79
90
|
<table class="memberdecls">
|
|
80
91
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
81
92
|
Public Types</h2></td></tr>
|
|
82
|
-
<tr class="memitem:
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
<tr class="separator:
|
|
86
|
-
<tr class="memitem:
|
|
87
|
-
<tr class="separator:
|
|
88
|
-
<tr class="memitem:af2cf8e42c15d6a0640f13c55050f616f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">BranchCondToCondExprMap</a></td></tr>
|
|
89
|
-
<tr class="separator:af2cf8e42c15d6a0640f13c55050f616f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
|
+
<tr class="memitem:a7f7519973f1e0ab8054670a6154bd74f"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> { <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">BDDMgrK</a>,
|
|
94
|
+
<a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">Z3MgrK</a>
|
|
95
|
+
}</td></tr>
|
|
96
|
+
<tr class="separator:a7f7519973f1e0ab8054670a6154bd74f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
97
|
+
<tr class="memitem:a01565ecb4f167283396be0e446b9df0a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">CondToTermInstMap</a></td></tr>
|
|
98
|
+
<tr class="separator:a01565ecb4f167283396be0e446b9df0a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
90
99
|
</table><table class="memberdecls">
|
|
91
100
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
92
101
|
Public Member Functions</h2></td></tr>
|
|
93
|
-
<tr class="memitem:
|
|
94
|
-
<tr class="memdesc:
|
|
95
|
-
<tr class="separator:
|
|
96
|
-
<tr class="memitem:
|
|
97
|
-
<tr class="memdesc:
|
|
98
|
-
<tr class="separator:
|
|
99
|
-
<tr class="memitem:
|
|
100
|
-
<tr class="memdesc:
|
|
101
|
-
<tr class="separator:
|
|
102
|
-
<tr class="memitem:af167e75fab5f61b18bff296075c107d1"><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_1CondManager.html#af167e75fab5f61b18bff296075c107d1">getCondNumber</a> ()</td></tr>
|
|
103
|
-
<tr class="memdesc:af167e75fab5f61b18bff296075c107d1"><td class="mdescLeft"> </td><td class="mdescRight">Return the number of condition expressions. <a href="#af167e75fab5f61b18bff296075c107d1">More...</a><br /></td></tr>
|
|
104
|
-
<tr class="separator:af167e75fab5f61b18bff296075c107d1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
|
+
<tr class="memitem:ae17d57a0fdc02a5558120e65e11976d4"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ae17d57a0fdc02a5558120e65e11976d4">~CondManager</a> ()</td></tr>
|
|
103
|
+
<tr class="memdesc:ae17d57a0fdc02a5558120e65e11976d4"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#ae17d57a0fdc02a5558120e65e11976d4">More...</a><br /></td></tr>
|
|
104
|
+
<tr class="separator:ae17d57a0fdc02a5558120e65e11976d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
105
|
+
<tr class="memitem:abd330e858463fed92fb3df6e8529f790"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#abd330e858463fed92fb3df6e8529f790">createFreshBranchCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)=0</td></tr>
|
|
106
|
+
<tr class="memdesc:abd330e858463fed92fb3df6e8529f790"><td class="mdescLeft"> </td><td class="mdescRight">Create a fresh condition to encode each program branch. <a href="#abd330e858463fed92fb3df6e8529f790">More...</a><br /></td></tr>
|
|
107
|
+
<tr class="separator:abd330e858463fed92fb3df6e8529f790"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
|
+
<tr class="memitem:a03d9a0d209505631f6d9e500d9c6bde3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a03d9a0d209505631f6d9e500d9c6bde3">getCondNumber</a> ()=0</td></tr>
|
|
109
|
+
<tr class="memdesc:a03d9a0d209505631f6d9e500d9c6bde3"><td class="mdescLeft"> </td><td class="mdescRight">Return the number of condition expressions. <a href="#a03d9a0d209505631f6d9e500d9c6bde3">More...</a><br /></td></tr>
|
|
110
|
+
<tr class="separator:a03d9a0d209505631f6d9e500d9c6bde3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
105
111
|
<tr class="memitem:ac74f182ef249a7c892ba9c630f889ddc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a> () const</td></tr>
|
|
106
112
|
<tr class="memdesc:ac74f182ef249a7c892ba9c630f889ddc"><td class="mdescLeft"> </td><td class="mdescRight">Return the unique true condition. <a href="#ac74f182ef249a7c892ba9c630f889ddc">More...</a><br /></td></tr>
|
|
107
113
|
<tr class="separator:ac74f182ef249a7c892ba9c630f889ddc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
114
|
<tr class="memitem:a39e9d42cb3661d1c686b5163c70eeade"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a> () const</td></tr>
|
|
109
115
|
<tr class="memdesc:a39e9d42cb3661d1c686b5163c70eeade"><td class="mdescLeft"> </td><td class="mdescRight">Return the unique false condition. <a href="#a39e9d42cb3661d1c686b5163c70eeade">More...</a><br /></td></tr>
|
|
110
116
|
<tr class="separator:a39e9d42cb3661d1c686b5163c70eeade"><td class="memSeparator" colspan="2"> </td></tr>
|
|
111
|
-
<tr class="memitem:
|
|
112
|
-
<tr class="
|
|
113
|
-
<tr class="
|
|
114
|
-
<tr class="
|
|
115
|
-
<tr class="
|
|
116
|
-
<tr class="
|
|
117
|
-
<tr class="
|
|
118
|
-
<tr class="
|
|
119
|
-
<tr class="separator:ab9772aa1a35e963ccc9ce1007ebc1310"><td class="memSeparator" colspan="2"> </td></tr>
|
|
120
|
-
<tr class="memitem:a385339096b4322654b5b2c7a37e852fe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a385339096b4322654b5b2c7a37e852fe">printDbg</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e)</td></tr>
|
|
121
|
-
<tr class="memdesc:a385339096b4322654b5b2c7a37e852fe"><td class="mdescLeft"> </td><td class="mdescRight">Print out one particular expression. <a href="#a385339096b4322654b5b2c7a37e852fe">More...</a><br /></td></tr>
|
|
122
|
-
<tr class="separator:a385339096b4322654b5b2c7a37e852fe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
123
|
-
<tr class="memitem:a907afafc19d8faa7a200bf4f1e07bb4f"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a907afafc19d8faa7a200bf4f1e07bb4f">dumpStr</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e) const</td></tr>
|
|
124
|
-
<tr class="memdesc:a907afafc19d8faa7a200bf4f1e07bb4f"><td class="mdescLeft"> </td><td class="mdescRight">Return string format of this expression. <a href="#a907afafc19d8faa7a200bf4f1e07bb4f">More...</a><br /></td></tr>
|
|
125
|
-
<tr class="separator:a907afafc19d8faa7a200bf4f1e07bb4f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
126
|
-
<tr class="memitem:acd773bd9dbf5161e488c827b0b71481d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">extractSubConds</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &support) const</td></tr>
|
|
127
|
-
<tr class="memdesc:acd773bd9dbf5161e488c827b0b71481d"><td class="mdescLeft"> </td><td class="mdescRight">Extract sub conditions of this expression. <a href="#acd773bd9dbf5161e488c827b0b71481d">More...</a><br /></td></tr>
|
|
128
|
-
<tr class="separator:acd773bd9dbf5161e488c827b0b71481d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
129
|
-
<tr class="memitem:a725d9c0a3aad4ebea3f06edf433f04ea"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a725d9c0a3aad4ebea3f06edf433f04ea">isSatisfiable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond)</td></tr>
|
|
130
|
-
<tr class="memdesc:a725d9c0a3aad4ebea3f06edf433f04ea"><td class="mdescLeft"> </td><td class="mdescRight">Whether the condition is satisfiable. <a href="#a725d9c0a3aad4ebea3f06edf433f04ea">More...</a><br /></td></tr>
|
|
131
|
-
<tr class="separator:a725d9c0a3aad4ebea3f06edf433f04ea"><td class="memSeparator" colspan="2"> </td></tr>
|
|
132
|
-
<tr class="memitem:adef2474c65a7f9d96b27ee670136a240"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) const</td></tr>
|
|
133
|
-
<tr class="memdesc:adef2474c65a7f9d96b27ee670136a240"><td class="mdescLeft"> </td><td class="mdescRight">Whether lhs and rhs are equivalent branch conditions. <a href="#adef2474c65a7f9d96b27ee670136a240">More...</a><br /></td></tr>
|
|
134
|
-
<tr class="separator:adef2474c65a7f9d96b27ee670136a240"><td class="memSeparator" colspan="2"> </td></tr>
|
|
117
|
+
<tr class="memitem:a1007afa25f9a95c5d12c58852ef74686"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a1007afa25f9a95c5d12c58852ef74686">isNegCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const =0</td></tr>
|
|
118
|
+
<tr class="separator:a1007afa25f9a95c5d12c58852ef74686"><td class="memSeparator" colspan="2"> </td></tr>
|
|
119
|
+
<tr class="memitem:a5ef85ea09500adc006a25c1eb3426831"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a5ef85ea09500adc006a25c1eb3426831">isSatisfiable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond)=0</td></tr>
|
|
120
|
+
<tr class="memdesc:a5ef85ea09500adc006a25c1eb3426831"><td class="mdescLeft"> </td><td class="mdescRight">Whether the condition is satisfiable. <a href="#a5ef85ea09500adc006a25c1eb3426831">More...</a><br /></td></tr>
|
|
121
|
+
<tr class="separator:a5ef85ea09500adc006a25c1eb3426831"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
|
+
<tr class="memitem:aa20839631502b975590754e146242175"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs)=0</td></tr>
|
|
123
|
+
<tr class="memdesc:aa20839631502b975590754e146242175"><td class="mdescLeft"> </td><td class="mdescRight">Whether lhs and rhs are equivalent branch conditions. <a href="#aa20839631502b975590754e146242175">More...</a><br /></td></tr>
|
|
124
|
+
<tr class="separator:aa20839631502b975590754e146242175"><td class="memSeparator" colspan="2"> </td></tr>
|
|
135
125
|
<tr class="memitem:a6151817a6f671fa1e7814e74f7ce2e51"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">isAllPathReachable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e)</td></tr>
|
|
136
126
|
<tr class="memdesc:a6151817a6f671fa1e7814e74f7ce2e51"><td class="mdescLeft"> </td><td class="mdescRight">Whether <b>All Paths</b> are reachable. <a href="#a6151817a6f671fa1e7814e74f7ce2e51">More...</a><br /></td></tr>
|
|
137
127
|
<tr class="separator:a6151817a6f671fa1e7814e74f7ce2e51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
138
|
-
<tr class="memitem:
|
|
139
|
-
<tr class="memdesc:
|
|
140
|
-
<tr class="separator:
|
|
128
|
+
<tr class="memitem:ad0273f830c9a6791aea55bfbdebf1138"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ad0273f830c9a6791aea55bfbdebf1138">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> id) const =0</td></tr>
|
|
129
|
+
<tr class="memdesc:ad0273f830c9a6791aea55bfbdebf1138"><td class="mdescLeft"> </td><td class="mdescRight">Get condition using condition id (z3 ast id) <a href="#ad0273f830c9a6791aea55bfbdebf1138">More...</a><br /></td></tr>
|
|
130
|
+
<tr class="separator:ad0273f830c9a6791aea55bfbdebf1138"><td class="memSeparator" colspan="2"> </td></tr>
|
|
141
131
|
<tr class="memitem:a4fac6a918f1f6d09fe1a4ceac7c19428"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const</td></tr>
|
|
142
132
|
<tr class="memdesc:a4fac6a918f1f6d09fe1a4ceac7c19428"><td class="mdescLeft"> </td><td class="mdescRight">Get/Set llvm conditional expression. <a href="#a4fac6a918f1f6d09fe1a4ceac7c19428">More...</a><br /></td></tr>
|
|
143
133
|
<tr class="separator:a4fac6a918f1f6d09fe1a4ceac7c19428"><td class="memSeparator" colspan="2"> </td></tr>
|
|
144
134
|
<tr class="memitem:a1fbf7dd446309e13671d838c91da26bf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
|
|
145
135
|
<tr class="separator:a1fbf7dd446309e13671d838c91da26bf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
146
|
-
<tr class="memitem:
|
|
147
|
-
<tr class="
|
|
148
|
-
<tr class="
|
|
149
|
-
<tr class="
|
|
136
|
+
<tr class="memitem:a9d1f2e6ef92ee120c7f26d98b1389b04"><td class="memItemLeft" align="right" valign="top">virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a9d1f2e6ef92ee120c7f26d98b1389b04">getMemUsage</a> ()=0</td></tr>
|
|
137
|
+
<tr class="memdesc:a9d1f2e6ef92ee120c7f26d98b1389b04"><td class="mdescLeft"> </td><td class="mdescRight">Return memory usage for this condition manager. <a href="#a9d1f2e6ef92ee120c7f26d98b1389b04">More...</a><br /></td></tr>
|
|
138
|
+
<tr class="separator:a9d1f2e6ef92ee120c7f26d98b1389b04"><td class="memSeparator" colspan="2"> </td></tr>
|
|
139
|
+
<tr class="memitem:a19c63783d5d20f363be3641941263a78"><td class="memItemLeft" align="right" valign="top">virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a19c63783d5d20f363be3641941263a78">dumpStr</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e) const =0</td></tr>
|
|
140
|
+
<tr class="memdesc:a19c63783d5d20f363be3641941263a78"><td class="mdescLeft"> </td><td class="mdescRight">Return string format of this expression. <a href="#a19c63783d5d20f363be3641941263a78">More...</a><br /></td></tr>
|
|
141
|
+
<tr class="separator:a19c63783d5d20f363be3641941263a78"><td class="memSeparator" colspan="2"> </td></tr>
|
|
142
|
+
<tr class="memitem:a66ed79e36f8c09ee3ae58fb9b4a6f3e3"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">extractSubConds</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &support) const =0</td></tr>
|
|
143
|
+
<tr class="memdesc:a66ed79e36f8c09ee3ae58fb9b4a6f3e3"><td class="mdescLeft"> </td><td class="mdescRight">Extract sub conditions of this expression. <a href="#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">More...</a><br /></td></tr>
|
|
144
|
+
<tr class="separator:a66ed79e36f8c09ee3ae58fb9b4a6f3e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
150
145
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
151
|
-
<tr class="memitem:
|
|
152
|
-
<tr class="memdesc:
|
|
153
|
-
<tr class="separator:
|
|
154
|
-
<tr class="memitem:
|
|
155
|
-
<tr class="separator:
|
|
156
|
-
<tr class="memitem:
|
|
157
|
-
<tr class="separator:
|
|
146
|
+
<tr class="memitem:aedda2ed496d0009d92d44a82af2ce8ae"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aedda2ed496d0009d92d44a82af2ce8ae">AND</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs)=0</td></tr>
|
|
147
|
+
<tr class="memdesc:aedda2ed496d0009d92d44a82af2ce8ae"><td class="mdescLeft"> </td><td class="mdescRight">Operations on conditions. <a href="#aedda2ed496d0009d92d44a82af2ce8ae">More...</a><br /></td></tr>
|
|
148
|
+
<tr class="separator:aedda2ed496d0009d92d44a82af2ce8ae"><td class="memSeparator" colspan="2"> </td></tr>
|
|
149
|
+
<tr class="memitem:aa6dcd9cb78deef05b6c4d4e9b6b0a16b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">OR</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs)=0</td></tr>
|
|
150
|
+
<tr class="separator:aa6dcd9cb78deef05b6c4d4e9b6b0a16b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
151
|
+
<tr class="memitem:aecb97f6eb6ba2943b2eaa7a8212a9ba6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aecb97f6eb6ba2943b2eaa7a8212a9ba6">NEG</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs)=0</td></tr>
|
|
152
|
+
<tr class="separator:aecb97f6eb6ba2943b2eaa7a8212a9ba6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
158
153
|
</table><table class="memberdecls">
|
|
159
154
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
|
160
155
|
Static Public Member Functions</h2></td></tr>
|
|
161
156
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
162
|
-
<tr class="memitem:
|
|
163
|
-
<tr class="memdesc:
|
|
164
|
-
<tr class="separator:
|
|
157
|
+
<tr class="memitem:a08cad78a4ebb31f32b72d5ff9793b83e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondManager.html">CondManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">getCondMgr</a> (<a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> _condMgrKind)</td></tr>
|
|
158
|
+
<tr class="memdesc:a08cad78a4ebb31f32b72d5ff9793b83e"><td class="mdescLeft"> </td><td class="mdescRight">Singleton design here to make sure we only have one instance during any analysis. <a href="#a08cad78a4ebb31f32b72d5ff9793b83e">More...</a><br /></td></tr>
|
|
159
|
+
<tr class="separator:a08cad78a4ebb31f32b72d5ff9793b83e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
165
160
|
<tr class="memitem:a2748338b4a5b122b5bbf4a9cb1f54211"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a> ()</td></tr>
|
|
166
161
|
<tr class="separator:a2748338b4a5b122b5bbf4a9cb1f54211"><td class="memSeparator" colspan="2"> </td></tr>
|
|
167
162
|
</table><table class="memberdecls">
|
|
@@ -170,113 +165,76 @@ Static Public Attributes</h2></td></tr>
|
|
|
170
165
|
<tr class="memitem:a7efaeff7229fcfdc6c05d53ee3e1d916"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a> = 0</td></tr>
|
|
171
166
|
<tr class="separator:a7efaeff7229fcfdc6c05d53ee3e1d916"><td class="memSeparator" colspan="2"> </td></tr>
|
|
172
167
|
</table><table class="memberdecls">
|
|
173
|
-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="
|
|
174
|
-
|
|
175
|
-
<tr class="memitem:
|
|
176
|
-
<tr class="memdesc:
|
|
177
|
-
<tr class="separator:
|
|
168
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
|
|
169
|
+
Protected Member Functions</h2></td></tr>
|
|
170
|
+
<tr class="memitem:a692a05088457ba5e4e1b7873c8da411d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a692a05088457ba5e4e1b7873c8da411d">CondManager</a> ()</td></tr>
|
|
171
|
+
<tr class="memdesc:a692a05088457ba5e4e1b7873c8da411d"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a692a05088457ba5e4e1b7873c8da411d">More...</a><br /></td></tr>
|
|
172
|
+
<tr class="separator:a692a05088457ba5e4e1b7873c8da411d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
173
|
+
</table><table class="memberdecls">
|
|
174
|
+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
|
|
175
|
+
Static Protected Attributes</h2></td></tr>
|
|
176
|
+
<tr class="memitem:aed854ecc55a568597f7d7f1f78fb92f4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = nullptr</td></tr>
|
|
177
|
+
<tr class="separator:aed854ecc55a568597f7d7f1f78fb92f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
178
|
+
<tr class="memitem:a0ba3cf86743de62bcd5fd38d8166bc90"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = nullptr</td></tr>
|
|
179
|
+
<tr class="separator:a0ba3cf86743de62bcd5fd38d8166bc90"><td class="memSeparator" colspan="2"> </td></tr>
|
|
178
180
|
</table><table class="memberdecls">
|
|
179
181
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
180
182
|
Private Attributes</h2></td></tr>
|
|
181
|
-
<tr class="memitem:
|
|
182
|
-
<tr class="separator:a087773d6ae6ed6af009a356dd7b61e11"><td class="memSeparator" colspan="2"> </td></tr>
|
|
183
|
-
<tr class="memitem:a771bda4bb55dd8c95a03f1a74a215126"><td class="memItemLeft" align="right" valign="top">z3::solver </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a></td></tr>
|
|
184
|
-
<tr class="separator:a771bda4bb55dd8c95a03f1a74a215126"><td class="memSeparator" colspan="2"> </td></tr>
|
|
185
|
-
<tr class="memitem:a3621c17b2ff1beb7aa4e467ec357713b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">IDToCondExprMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a></td></tr>
|
|
186
|
-
<tr class="memdesc:a3621c17b2ff1beb7aa4e467ec357713b"><td class="mdescLeft"> </td><td class="mdescRight">map condition id (z3 ast id) to its Condition wrapper <a href="#a3621c17b2ff1beb7aa4e467ec357713b">More...</a><br /></td></tr>
|
|
187
|
-
<tr class="separator:a3621c17b2ff1beb7aa4e467ec357713b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
188
|
-
<tr class="memitem:afd01891f45e085e990c9dbba5cbf3914"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">BranchCondToCondExprMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a></td></tr>
|
|
189
|
-
<tr class="memdesc:afd01891f45e085e990c9dbba5cbf3914"><td class="mdescLeft"> </td><td class="mdescRight">map branch condition to its Condition wrapper <a href="#afd01891f45e085e990c9dbba5cbf3914">More...</a><br /></td></tr>
|
|
190
|
-
<tr class="separator:afd01891f45e085e990c9dbba5cbf3914"><td class="memSeparator" colspan="2"> </td></tr>
|
|
191
|
-
<tr class="memitem:ab986c3f6281995e302dabe4776768329"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b">CondToTermInstMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a></td></tr>
|
|
183
|
+
<tr class="memitem:ab986c3f6281995e302dabe4776768329"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">CondToTermInstMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a></td></tr>
|
|
192
184
|
<tr class="memdesc:ab986c3f6281995e302dabe4776768329"><td class="mdescLeft"> </td><td class="mdescRight">map condition to llvm instruction <a href="#ab986c3f6281995e302dabe4776768329">More...</a><br /></td></tr>
|
|
193
185
|
<tr class="separator:ab986c3f6281995e302dabe4776768329"><td class="memSeparator" colspan="2"> </td></tr>
|
|
194
|
-
<tr class="memitem:ac735eb27ed4328f97ced87494683f7f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a></td></tr>
|
|
195
|
-
<tr class="memdesc:ac735eb27ed4328f97ced87494683f7f1"><td class="mdescLeft"> </td><td class="mdescRight">branch condition manager <a href="#ac735eb27ed4328f97ced87494683f7f1">More...</a><br /></td></tr>
|
|
196
|
-
<tr class="separator:ac735eb27ed4328f97ced87494683f7f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
197
|
-
<tr class="memitem:aa5e6dbdb4c88941996f7865a2d3ca314"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a></td></tr>
|
|
198
|
-
<tr class="separator:aa5e6dbdb4c88941996f7865a2d3ca314"><td class="memSeparator" colspan="2"> </td></tr>
|
|
199
186
|
</table><table class="memberdecls">
|
|
200
187
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
|
|
201
188
|
Static Private Attributes</h2></td></tr>
|
|
202
189
|
<tr class="memitem:a1e48008a3fe3a562512e253133aa557f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondManager.html">CondManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a> = nullptr</td></tr>
|
|
203
190
|
<tr class="separator:a1e48008a3fe3a562512e253133aa557f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
204
|
-
<tr class="memitem:aed854ecc55a568597f7d7f1f78fb92f4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = nullptr</td></tr>
|
|
205
|
-
<tr class="separator:aed854ecc55a568597f7d7f1f78fb92f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
206
|
-
<tr class="memitem:a0ba3cf86743de62bcd5fd38d8166bc90"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = nullptr</td></tr>
|
|
207
|
-
<tr class="separator:a0ba3cf86743de62bcd5fd38d8166bc90"><td class="memSeparator" colspan="2"> </td></tr>
|
|
208
191
|
</table>
|
|
209
192
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
210
193
|
<div class="textblock">
|
|
211
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
194
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00135">135</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
212
195
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
213
|
-
<a id="
|
|
214
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
215
|
-
|
|
216
|
-
<div class="memitem">
|
|
217
|
-
<div class="memproto">
|
|
218
|
-
<table class="memname">
|
|
219
|
-
<tr>
|
|
220
|
-
<td class="memname">typedef <a class="el" href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3">BranchCondExpr::BranchCond</a> <a class="el" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></td>
|
|
221
|
-
</tr>
|
|
222
|
-
</table>
|
|
223
|
-
</div><div class="memdoc">
|
|
224
|
-
|
|
225
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00190">190</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
226
|
-
|
|
227
|
-
</div>
|
|
228
|
-
</div>
|
|
229
|
-
<a id="af2cf8e42c15d6a0640f13c55050f616f"></a>
|
|
230
|
-
<h2 class="memtitle"><span class="permalink"><a href="#af2cf8e42c15d6a0640f13c55050f616f">◆ </a></span>BranchCondToCondExprMap</h2>
|
|
196
|
+
<a id="a01565ecb4f167283396be0e446b9df0a"></a>
|
|
197
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a01565ecb4f167283396be0e446b9df0a">◆ </a></span>CondToTermInstMap</h2>
|
|
231
198
|
|
|
232
199
|
<div class="memitem">
|
|
233
200
|
<div class="memproto">
|
|
234
201
|
<table class="memname">
|
|
235
202
|
<tr>
|
|
236
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><
|
|
203
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *> <a class="el" href="classSVF_1_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">SVF::CondManager::CondToTermInstMap</a></td>
|
|
237
204
|
</tr>
|
|
238
205
|
</table>
|
|
239
206
|
</div><div class="memdoc">
|
|
240
207
|
|
|
241
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
208
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00150">150</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
242
209
|
|
|
243
210
|
</div>
|
|
244
211
|
</div>
|
|
245
|
-
<
|
|
246
|
-
<
|
|
212
|
+
<h2 class="groupheader">Member Enumeration Documentation</h2>
|
|
213
|
+
<a id="a7f7519973f1e0ab8054670a6154bd74f"></a>
|
|
214
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7f7519973f1e0ab8054670a6154bd74f">◆ </a></span>CondMgrKind</h2>
|
|
247
215
|
|
|
248
216
|
<div class="memitem">
|
|
249
217
|
<div class="memproto">
|
|
250
218
|
<table class="memname">
|
|
251
219
|
<tr>
|
|
252
|
-
<td class="memname">
|
|
220
|
+
<td class="memname">enum <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">SVF::CondManager::CondMgrKind</a></td>
|
|
253
221
|
</tr>
|
|
254
222
|
</table>
|
|
255
223
|
</div><div class="memdoc">
|
|
224
|
+
<table class="fieldtable">
|
|
225
|
+
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d"></a>BDDMgrK </td><td class="fielddoc"></td></tr>
|
|
226
|
+
<tr><td class="fieldname"><a id="a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780"></a>Z3MgrK </td><td class="fielddoc"></td></tr>
|
|
227
|
+
</table>
|
|
256
228
|
|
|
257
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
258
|
-
|
|
259
|
-
</div>
|
|
260
|
-
</div
|
|
261
|
-
<a id="a1f6aceb4d48a37bcb0e2f1776116b760"></a>
|
|
262
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a1f6aceb4d48a37bcb0e2f1776116b760">◆ </a></span>IDToCondExprMap</h2>
|
|
263
|
-
|
|
264
|
-
<div class="memitem">
|
|
265
|
-
<div class="memproto">
|
|
266
|
-
<table class="memname">
|
|
267
|
-
<tr>
|
|
268
|
-
<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_1CondExpr.html">CondExpr</a>*> <a class="el" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">SVF::CondManager::IDToCondExprMap</a></td>
|
|
269
|
-
</tr>
|
|
270
|
-
</table>
|
|
271
|
-
</div><div class="memdoc">
|
|
272
|
-
|
|
273
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00210">210</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
274
|
-
|
|
229
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00138">138</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
230
|
+
<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">BDDMgrK</a>, <a class="code" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">Z3MgrK</a></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  };</div><div class="ttc" id="classSVF_1_1CondManager_html_a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">SVF::CondManager::Z3MgrK</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00139">Conditions.h:139</a></div></div>
|
|
231
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">SVF::CondManager::BDDMgrK</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00139">Conditions.h:139</a></div></div>
|
|
232
|
+
</div><!-- fragment -->
|
|
275
233
|
</div>
|
|
276
234
|
</div>
|
|
277
235
|
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
278
|
-
<a id="
|
|
279
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
236
|
+
<a id="a692a05088457ba5e4e1b7873c8da411d"></a>
|
|
237
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a692a05088457ba5e4e1b7873c8da411d">◆ </a></span>CondManager()</h2>
|
|
280
238
|
|
|
281
239
|
<div class="memitem">
|
|
282
240
|
<div class="memproto">
|
|
@@ -285,7 +243,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
285
243
|
<td class="mlabels-left">
|
|
286
244
|
<table class="memname">
|
|
287
245
|
<tr>
|
|
288
|
-
<td class="memname">CondManager::CondManager </td>
|
|
246
|
+
<td class="memname">SVF::CondManager::CondManager </td>
|
|
289
247
|
<td>(</td>
|
|
290
248
|
<td class="paramname"></td><td>)</td>
|
|
291
249
|
<td></td>
|
|
@@ -293,58 +251,58 @@ Static Private Attributes</h2></td></tr>
|
|
|
293
251
|
</table>
|
|
294
252
|
</td>
|
|
295
253
|
<td class="mlabels-right">
|
|
296
|
-
<span class="mlabels"><span class="mlabel">
|
|
254
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
|
|
297
255
|
</tr>
|
|
298
256
|
</table>
|
|
299
257
|
</div><div class="memdoc">
|
|
300
258
|
|
|
301
259
|
<p>Constructor. </p>
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
<
|
|
305
|
-
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  : <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>(<a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> z3::expr &trueExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(trueExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> z3::expr &falseExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(falseExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_a0ba3cf86743de62bcd5fd38d8166bc90"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">SVF::CondManager::falseCond</a></div><div class="ttdeci">static CondExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00305">Conditions.h:305</a></div></div>
|
|
306
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
307
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
|
|
308
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00302">Conditions.h:302</a></div></div>
|
|
309
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
|
|
310
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a013eb66493beb2b1d004605c68894a95"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">SVF::BranchCondManager::getFalseCond</a></div><div class="ttdeci">BranchCond * getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00138">Conditions.h:138</a></div></div>
|
|
311
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_aed854ecc55a568597f7d7f1f78fb92f4"><div class="ttname"><a href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">SVF::CondManager::trueCond</a></div><div class="ttdeci">static CondExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00304">Conditions.h:304</a></div></div>
|
|
312
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
|
|
313
|
-
</div><!-- fragment -->
|
|
260
|
+
|
|
261
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00147">147</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
262
|
+
<div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {}</div></div><!-- fragment -->
|
|
314
263
|
</div>
|
|
315
264
|
</div>
|
|
316
|
-
<a id="
|
|
317
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
265
|
+
<a id="ae17d57a0fdc02a5558120e65e11976d4"></a>
|
|
266
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ae17d57a0fdc02a5558120e65e11976d4">◆ </a></span>~CondManager()</h2>
|
|
318
267
|
|
|
319
268
|
<div class="memitem">
|
|
320
269
|
<div class="memproto">
|
|
270
|
+
<table class="mlabels">
|
|
271
|
+
<tr>
|
|
272
|
+
<td class="mlabels-left">
|
|
321
273
|
<table class="memname">
|
|
322
274
|
<tr>
|
|
323
|
-
<td class="memname">CondManager::~CondManager </td>
|
|
275
|
+
<td class="memname">virtual SVF::CondManager::~CondManager </td>
|
|
324
276
|
<td>(</td>
|
|
325
277
|
<td class="paramname"></td><td>)</td>
|
|
326
278
|
<td></td>
|
|
327
279
|
</tr>
|
|
328
280
|
</table>
|
|
281
|
+
</td>
|
|
282
|
+
<td class="mlabels-right">
|
|
283
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
|
|
284
|
+
</tr>
|
|
285
|
+
</table>
|
|
329
286
|
</div><div class="memdoc">
|
|
330
287
|
|
|
331
288
|
<p>Destructor. </p>
|
|
332
|
-
<p>Destructor </p>
|
|
333
289
|
|
|
334
|
-
<p class="definition">Definition at line <a class="el" href="
|
|
335
|
-
<div class="fragment"><div class="line"><a name="
|
|
336
|
-
</div><!-- fragment -->
|
|
290
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00163">163</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
291
|
+
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {};</div></div><!-- fragment -->
|
|
337
292
|
</div>
|
|
338
293
|
</div>
|
|
339
294
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
340
|
-
<a id="
|
|
341
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
295
|
+
<a id="aedda2ed496d0009d92d44a82af2ce8ae"></a>
|
|
296
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aedda2ed496d0009d92d44a82af2ce8ae">◆ </a></span>AND()</h2>
|
|
342
297
|
|
|
343
298
|
<div class="memitem">
|
|
344
299
|
<div class="memproto">
|
|
300
|
+
<table class="mlabels">
|
|
301
|
+
<tr>
|
|
302
|
+
<td class="mlabels-left">
|
|
345
303
|
<table class="memname">
|
|
346
304
|
<tr>
|
|
347
|
-
<td class="memname"
|
|
305
|
+
<td class="memname">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::CondManager::AND </td>
|
|
348
306
|
<td>(</td>
|
|
349
307
|
<td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
350
308
|
<td class="paramname"><em>lhs</em>, </td>
|
|
@@ -361,88 +319,90 @@ Static Private Attributes</h2></td></tr>
|
|
|
361
319
|
<td></td><td></td>
|
|
362
320
|
</tr>
|
|
363
321
|
</table>
|
|
322
|
+
</td>
|
|
323
|
+
<td class="mlabels-right">
|
|
324
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
325
|
+
</tr>
|
|
326
|
+
</table>
|
|
364
327
|
</div><div class="memdoc">
|
|
365
328
|
|
|
366
329
|
<p>Operations on conditions. </p>
|
|
367
330
|
|
|
368
|
-
<p
|
|
369
|
-
|
|
370
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00226">Conditions.h:226</a></div></div>
|
|
371
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
|
|
372
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a739f4206abf4f367dc796e9fd35d4d04"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a739f4206abf4f367dc796e9fd35d4d04">SVF::BranchCondManager::AND</a></div><div class="ttdeci">BranchCond * AND(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdoc">Operations on conditions. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00260">Conditions.cpp:260</a></div></div>
|
|
373
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
374
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00231">Conditions.h:231</a></div></div>
|
|
375
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
|
|
376
|
-
</div><!-- fragment -->
|
|
331
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#af8a4ede3ac4b89bb0ce7767ee4505aea">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a540de948d9cc396341376e081d7e46aa">SVF::Z3Manager</a>.</p>
|
|
332
|
+
|
|
377
333
|
</div>
|
|
378
334
|
</div>
|
|
379
|
-
<a id="
|
|
380
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
335
|
+
<a id="abd330e858463fed92fb3df6e8529f790"></a>
|
|
336
|
+
<h2 class="memtitle"><span class="permalink"><a href="#abd330e858463fed92fb3df6e8529f790">◆ </a></span>createFreshBranchCond()</h2>
|
|
381
337
|
|
|
382
338
|
<div class="memitem">
|
|
383
339
|
<div class="memproto">
|
|
340
|
+
<table class="mlabels">
|
|
341
|
+
<tr>
|
|
342
|
+
<td class="mlabels-left">
|
|
384
343
|
<table class="memname">
|
|
385
344
|
<tr>
|
|
386
|
-
<td class="memname"
|
|
345
|
+
<td class="memname">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::CondManager::createFreshBranchCond </td>
|
|
387
346
|
<td>(</td>
|
|
388
347
|
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
389
348
|
<td class="paramname"><em>inst</em></td><td>)</td>
|
|
390
349
|
<td></td>
|
|
391
350
|
</tr>
|
|
392
351
|
</table>
|
|
352
|
+
</td>
|
|
353
|
+
<td class="mlabels-right">
|
|
354
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
355
|
+
</tr>
|
|
356
|
+
</table>
|
|
393
357
|
</div><div class="memdoc">
|
|
394
358
|
|
|
395
359
|
<p>Create a fresh condition to encode each program branch. </p>
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
<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="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> condCountIdx = <a class="code" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a>++;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> z3::expr &expr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_const((<span class="stringliteral">"c"</span> + std::to_string(condCountIdx)).c_str());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  IDToCondExprMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.find(expr.id());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">createCond</a>(condCountIdx);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(expr, branchCond);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">NEG</a>(cond);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">setNegCondInst</a>(negCond, inst);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(expr.id(), cond).first->second;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_a6c807df0d5627d3afda2359b658bc97c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">SVF::BranchCondManager::createCond</a></div><div class="ttdeci">BranchCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00130">Conditions.h:130</a></div></div>
|
|
400
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
|
|
401
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00302">Conditions.h:302</a></div></div>
|
|
402
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
|
|
403
|
-
<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#l00077">SVFBasicTypes.h:77</a></div></div>
|
|
404
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a5751792e45c8abd5ffd3610d94e9f0b7"><div class="ttname"><a href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">SVF::CondManager::NEG</a></div><div class="ttdeci">CondExpr * NEG(CondExpr *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00163">Conditions.cpp:163</a></div></div>
|
|
405
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00307">Conditions.h:307</a></div></div>
|
|
406
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00286">Conditions.h:286</a></div></div>
|
|
407
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
|
|
408
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a049541fec44cac3401a0dc68ff2f0ac1"><div class="ttname"><a href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">SVF::CondManager::setNegCondInst</a></div><div class="ttdeci">void setNegCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00291">Conditions.h:291</a></div></div>
|
|
409
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a7efaeff7229fcfdc6c05d53ee3e1d916"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">SVF::CondManager::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00192">Conditions.h:192</a></div></div>
|
|
410
|
-
<div class="ttc" id="classSVF_1_1BranchCondExpr_html"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html">SVF::BranchCondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00079">Conditions.h:79</a></div></div>
|
|
411
|
-
</div><!-- fragment -->
|
|
360
|
+
|
|
361
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a5311c7dcff82a09077e640e20d9e68e9">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a4ba99458553cfd7b586f0730b62e5b82">SVF::Z3Manager</a>.</p>
|
|
362
|
+
|
|
412
363
|
</div>
|
|
413
364
|
</div>
|
|
414
|
-
<a id="
|
|
415
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
365
|
+
<a id="a19c63783d5d20f363be3641941263a78"></a>
|
|
366
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a19c63783d5d20f363be3641941263a78">◆ </a></span>dumpStr()</h2>
|
|
416
367
|
|
|
417
368
|
<div class="memitem">
|
|
418
369
|
<div class="memproto">
|
|
370
|
+
<table class="mlabels">
|
|
371
|
+
<tr>
|
|
372
|
+
<td class="mlabels-left">
|
|
419
373
|
<table class="memname">
|
|
420
374
|
<tr>
|
|
421
|
-
<td class="memname">std::string CondManager::dumpStr </td>
|
|
375
|
+
<td class="memname">virtual std::string SVF::CondManager::dumpStr </td>
|
|
422
376
|
<td>(</td>
|
|
423
377
|
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
424
378
|
<td class="paramname"><em>e</em></td><td>)</td>
|
|
425
379
|
<td> const</td>
|
|
426
380
|
</tr>
|
|
427
381
|
</table>
|
|
382
|
+
</td>
|
|
383
|
+
<td class="mlabels-right">
|
|
384
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
385
|
+
</tr>
|
|
386
|
+
</table>
|
|
428
387
|
</div><div class="memdoc">
|
|
429
388
|
|
|
430
389
|
<p>Return string format of this expression. </p>
|
|
431
|
-
<p>Return string format of this expression </p>
|
|
432
390
|
|
|
433
|
-
<p
|
|
434
|
-
|
|
435
|
-
</div><!-- fragment -->
|
|
391
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#add075de17c153605c2d5eb7b5d87dbfb">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a163ced4f232f18a0d2c0066fc72745e1">SVF::Z3Manager</a>.</p>
|
|
392
|
+
|
|
436
393
|
</div>
|
|
437
394
|
</div>
|
|
438
|
-
<a id="
|
|
439
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
395
|
+
<a id="a66ed79e36f8c09ee3ae58fb9b4a6f3e3"></a>
|
|
396
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">◆ </a></span>extractSubConds()</h2>
|
|
440
397
|
|
|
441
398
|
<div class="memitem">
|
|
442
399
|
<div class="memproto">
|
|
400
|
+
<table class="mlabels">
|
|
401
|
+
<tr>
|
|
402
|
+
<td class="mlabels-left">
|
|
443
403
|
<table class="memname">
|
|
444
404
|
<tr>
|
|
445
|
-
<td class="memname">void CondManager::extractSubConds </td>
|
|
405
|
+
<td class="memname">virtual void SVF::CondManager::extractSubConds </td>
|
|
446
406
|
<td>(</td>
|
|
447
407
|
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
448
408
|
<td class="paramname"><em>cond</em>, </td>
|
|
@@ -459,22 +419,21 @@ Static Private Attributes</h2></td></tr>
|
|
|
459
419
|
<td></td><td> const</td>
|
|
460
420
|
</tr>
|
|
461
421
|
</table>
|
|
422
|
+
</td>
|
|
423
|
+
<td class="mlabels-right">
|
|
424
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
425
|
+
</tr>
|
|
426
|
+
</table>
|
|
462
427
|
</div><div class="memdoc">
|
|
463
428
|
|
|
464
429
|
<p>Extract sub conditions of this expression. </p>
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">if</span> (cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args() == 1 && <a class="code" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">isNegCond</a>(cond)) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  support.set(cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span> (cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args() == 0)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (!cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_true() && !cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_false())</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  support.set(cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id());</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args(); ++i) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">const</span> z3::expr &expr = cond-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().arg(i);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">extractSubConds</a>(<a class="code" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">getCond</a>(expr.id()), support);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_acd773bd9dbf5161e488c827b0b71481d"><div class="ttname"><a href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">SVF::CondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *cond, NodeBS &support) const</div><div class="ttdoc">Extract sub conditions of this expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00204">Conditions.cpp:204</a></div></div>
|
|
469
|
-
<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#l00077">SVFBasicTypes.h:77</a></div></div>
|
|
470
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ad1de136dbd62c3b9a7447222bd0890fa"><div class="ttname"><a href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">SVF::CondManager::isNegCond</a></div><div class="ttdeci">bool isNegCond(const CondExpr *cond) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00296">Conditions.h:296</a></div></div>
|
|
471
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac246b92ebdf6a9635ed79892b81b9ae8"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">SVF::CondManager::getCond</a></div><div class="ttdeci">CondExpr * getCond(u32_t id) const</div><div class="ttdoc">Get condition using condition id (z3 ast id) </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00272">Conditions.h:272</a></div></div>
|
|
472
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
473
|
-
</div><!-- fragment -->
|
|
430
|
+
|
|
431
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#aa6a78fc2f0a3ed9957230703fb8d730d">SVF::Z3Manager</a>.</p>
|
|
432
|
+
|
|
474
433
|
</div>
|
|
475
434
|
</div>
|
|
476
|
-
<a id="
|
|
477
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
435
|
+
<a id="ad0273f830c9a6791aea55bfbdebf1138"></a>
|
|
436
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ad0273f830c9a6791aea55bfbdebf1138">◆ </a></span>getCond()</h2>
|
|
478
437
|
|
|
479
438
|
<div class="memitem">
|
|
480
439
|
<div class="memproto">
|
|
@@ -483,7 +442,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
483
442
|
<td class="mlabels-left">
|
|
484
443
|
<table class="memname">
|
|
485
444
|
<tr>
|
|
486
|
-
<td class="memname"
|
|
445
|
+
<td class="memname">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::CondManager::getCond </td>
|
|
487
446
|
<td>(</td>
|
|
488
447
|
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
489
448
|
<td class="paramname"><em>id</em></td><td>)</td>
|
|
@@ -492,17 +451,15 @@ Static Private Attributes</h2></td></tr>
|
|
|
492
451
|
</table>
|
|
493
452
|
</td>
|
|
494
453
|
<td class="mlabels-right">
|
|
495
|
-
<span class="mlabels"><span class="mlabel">
|
|
454
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
496
455
|
</tr>
|
|
497
456
|
</table>
|
|
498
457
|
</div><div class="memdoc">
|
|
499
458
|
|
|
500
459
|
<p>Get condition using condition id (z3 ast id) </p>
|
|
501
460
|
|
|
502
|
-
<p
|
|
503
|
-
|
|
504
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
|
|
505
|
-
</div><!-- fragment -->
|
|
461
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a6b32e78874429c587de4f0f50dad95ee">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#aa8ecb34cf54a5defb48747b1278b4764">SVF::Z3Manager</a>.</p>
|
|
462
|
+
|
|
506
463
|
</div>
|
|
507
464
|
</div>
|
|
508
465
|
<a id="a4fac6a918f1f6d09fe1a4ceac7c19428"></a>
|
|
@@ -531,14 +488,14 @@ Static Private Attributes</h2></td></tr>
|
|
|
531
488
|
|
|
532
489
|
<p>Get/Set llvm conditional expression. </p>
|
|
533
490
|
|
|
534
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
535
|
-
<div class="fragment"><div class="line"><a name="
|
|
536
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#
|
|
491
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00206">206</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
492
|
+
<div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  CondToTermInstMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.find(cond);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.end() && <span class="stringliteral">"this should be a fresh condition"</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</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>
|
|
493
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00233">Conditions.h:233</a></div></div>
|
|
537
494
|
</div><!-- fragment -->
|
|
538
495
|
</div>
|
|
539
496
|
</div>
|
|
540
|
-
<a id="
|
|
541
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
497
|
+
<a id="a08cad78a4ebb31f32b72d5ff9793b83e"></a>
|
|
498
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a08cad78a4ebb31f32b72d5ff9793b83e">◆ </a></span>getCondMgr()</h2>
|
|
542
499
|
|
|
543
500
|
<div class="memitem">
|
|
544
501
|
<div class="memproto">
|
|
@@ -547,48 +504,59 @@ Static Private Attributes</h2></td></tr>
|
|
|
547
504
|
<td class="mlabels-left">
|
|
548
505
|
<table class="memname">
|
|
549
506
|
<tr>
|
|
550
|
-
<td class="memname"
|
|
507
|
+
<td class="memname"><a class="el" href="classSVF_1_1CondManager.html">CondManager</a> * CondManager::getCondMgr </td>
|
|
551
508
|
<td>(</td>
|
|
552
|
-
<td class="
|
|
509
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> </td>
|
|
510
|
+
<td class="paramname"><em>_condMgrKind</em></td><td>)</td>
|
|
553
511
|
<td></td>
|
|
554
512
|
</tr>
|
|
555
513
|
</table>
|
|
556
514
|
</td>
|
|
557
515
|
<td class="mlabels-right">
|
|
558
|
-
<span class="mlabels"><span class="mlabel">
|
|
516
|
+
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
559
517
|
</tr>
|
|
560
518
|
</table>
|
|
561
519
|
</div><div class="memdoc">
|
|
562
520
|
|
|
563
521
|
<p>Singleton design here to make sure we only have one instance during any analysis. </p>
|
|
564
522
|
|
|
565
|
-
<p class="definition">Definition at line <a class="el" href="
|
|
566
|
-
<div class="fragment"><div class="line"><a name="
|
|
567
|
-
<div class="ttc" id="
|
|
523
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00043">43</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
524
|
+
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a> == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> (_condMgrKind == <a class="code" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">BDDMgrK</a>)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BDDManager.html">BDDManager</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (_condMgrKind == <a class="code" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">Z3MgrK</a>)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Z3Manager.html">Z3Manager</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"invalid condition manager kind!"</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div><div class="ttc" id="classSVF_1_1Z3Manager_html"><div class="ttname"><a href="classSVF_1_1Z3Manager.html">SVF::Z3Manager</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00240">Conditions.h:240</a></div></div>
|
|
525
|
+
<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>
|
|
526
|
+
<div class="ttc" id="classSVF_1_1BDDManager_html"><div class="ttname"><a href="classSVF_1_1BDDManager.html">SVF::BDDManager</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00325">Conditions.h:325</a></div></div>
|
|
527
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_a1e48008a3fe3a562512e253133aa557f"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">SVF::CondManager::condMgr</a></div><div class="ttdeci">static CondManager * condMgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00143">Conditions.h:143</a></div></div>
|
|
528
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">SVF::CondManager::Z3MgrK</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00139">Conditions.h:139</a></div></div>
|
|
529
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">SVF::CondManager::BDDMgrK</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00139">Conditions.h:139</a></div></div>
|
|
568
530
|
</div><!-- fragment -->
|
|
569
531
|
</div>
|
|
570
532
|
</div>
|
|
571
|
-
<a id="
|
|
572
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
533
|
+
<a id="a03d9a0d209505631f6d9e500d9c6bde3"></a>
|
|
534
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a03d9a0d209505631f6d9e500d9c6bde3">◆ </a></span>getCondNumber()</h2>
|
|
573
535
|
|
|
574
536
|
<div class="memitem">
|
|
575
537
|
<div class="memproto">
|
|
538
|
+
<table class="mlabels">
|
|
539
|
+
<tr>
|
|
540
|
+
<td class="mlabels-left">
|
|
576
541
|
<table class="memname">
|
|
577
542
|
<tr>
|
|
578
|
-
<td class="memname"
|
|
543
|
+
<td class="memname">virtual <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::CondManager::getCondNumber </td>
|
|
579
544
|
<td>(</td>
|
|
580
545
|
<td class="paramname"></td><td>)</td>
|
|
581
546
|
<td></td>
|
|
582
547
|
</tr>
|
|
583
548
|
</table>
|
|
549
|
+
</td>
|
|
550
|
+
<td class="mlabels-right">
|
|
551
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
552
|
+
</tr>
|
|
553
|
+
</table>
|
|
584
554
|
</div><div class="memdoc">
|
|
585
555
|
|
|
586
556
|
<p>Return the number of condition expressions. </p>
|
|
587
|
-
<p>Return the number of condition expressions </p>
|
|
588
557
|
|
|
589
|
-
<p
|
|
590
|
-
|
|
591
|
-
</div><!-- fragment -->
|
|
558
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a11e62b98370ace84a5370a9ab00a1717">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a5143c47868ea644735f34ca95400ee42">SVF::Z3Manager</a>.</p>
|
|
559
|
+
|
|
592
560
|
</div>
|
|
593
561
|
</div>
|
|
594
562
|
<a id="a39e9d42cb3661d1c686b5163c70eeade"></a>
|
|
@@ -616,67 +584,38 @@ Static Private Attributes</h2></td></tr>
|
|
|
616
584
|
|
|
617
585
|
<p>Return the unique false condition. </p>
|
|
618
586
|
|
|
619
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
620
|
-
<div class="fragment"><div class="line"><a name="
|
|
587
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00177">177</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
588
|
+
<div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="ttc" id="classSVF_1_1CondManager_html_a0ba3cf86743de62bcd5fd38d8166bc90"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">SVF::CondManager::falseCond</a></div><div class="ttdeci">static CondExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00229">Conditions.h:229</a></div></div>
|
|
621
589
|
</div><!-- fragment -->
|
|
622
590
|
</div>
|
|
623
591
|
</div>
|
|
624
|
-
<a id="
|
|
625
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
592
|
+
<a id="a9d1f2e6ef92ee120c7f26d98b1389b04"></a>
|
|
593
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a9d1f2e6ef92ee120c7f26d98b1389b04">◆ </a></span>getMemUsage()</h2>
|
|
626
594
|
|
|
627
595
|
<div class="memitem">
|
|
628
596
|
<div class="memproto">
|
|
597
|
+
<table class="mlabels">
|
|
598
|
+
<tr>
|
|
599
|
+
<td class="mlabels-left">
|
|
629
600
|
<table class="memname">
|
|
630
601
|
<tr>
|
|
631
|
-
<td class="memname">std::string CondManager::getMemUsage </td>
|
|
602
|
+
<td class="memname">virtual std::string SVF::CondManager::getMemUsage </td>
|
|
632
603
|
<td>(</td>
|
|
633
604
|
<td class="paramname"></td><td>)</td>
|
|
634
605
|
<td></td>
|
|
635
606
|
</tr>
|
|
636
607
|
</table>
|
|
608
|
+
</td>
|
|
609
|
+
<td class="mlabels-right">
|
|
610
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
611
|
+
</tr>
|
|
612
|
+
</table>
|
|
637
613
|
</div><div class="memdoc">
|
|
638
614
|
|
|
639
615
|
<p>Return memory usage for this condition manager. </p>
|
|
640
|
-
<p>Return memory usage for this condition manager </p>
|
|
641
|
-
|
|
642
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00193">193</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
643
|
-
<div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">//std::ostringstream os;</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">//memory::display_max_usage(os);</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">//return os.str();</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div></div><!-- fragment -->
|
|
644
|
-
</div>
|
|
645
|
-
</div>
|
|
646
|
-
<a id="a0ca23ef4850f9be8abf303eafd104dab"></a>
|
|
647
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a0ca23ef4850f9be8abf303eafd104dab">◆ </a></span>getOrAddBranchCond()</h2>
|
|
648
|
-
|
|
649
|
-
<div class="memitem">
|
|
650
|
-
<div class="memproto">
|
|
651
|
-
<table class="memname">
|
|
652
|
-
<tr>
|
|
653
|
-
<td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * CondManager::getOrAddBranchCond </td>
|
|
654
|
-
<td>(</td>
|
|
655
|
-
<td class="paramtype">const z3::expr & </td>
|
|
656
|
-
<td class="paramname"><em>e</em>, </td>
|
|
657
|
-
</tr>
|
|
658
|
-
<tr>
|
|
659
|
-
<td class="paramkey"></td>
|
|
660
|
-
<td></td>
|
|
661
|
-
<td class="paramtype"><a class="el" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> * </td>
|
|
662
|
-
<td class="paramname"><em>branchCond</em> </td>
|
|
663
|
-
</tr>
|
|
664
|
-
<tr>
|
|
665
|
-
<td></td>
|
|
666
|
-
<td>)</td>
|
|
667
|
-
<td></td><td></td>
|
|
668
|
-
</tr>
|
|
669
|
-
</table>
|
|
670
|
-
</div><div class="memdoc">
|
|
671
616
|
|
|
672
|
-
<p>
|
|
673
|
-
<p>Get or add a single branch condition, e.g., when doing condition conjunction </p>
|
|
617
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#adf0847a4af7703a0139c5db326a7988f">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#aca945ffd7a479fcf4de413a1ddcbf15a">SVF::Z3Manager</a>.</p>
|
|
674
618
|
|
|
675
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00113">113</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
676
|
-
<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.find(branchCond);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span>(it != <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.end())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(e, branchCond);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(e.id(), cond).first->second;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00307">Conditions.h:307</a></div></div>
|
|
677
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
|
|
678
|
-
<div class="ttc" id="classSVF_1_1BranchCondExpr_html"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html">SVF::BranchCondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00079">Conditions.h:79</a></div></div>
|
|
679
|
-
</div><!-- fragment -->
|
|
680
619
|
</div>
|
|
681
620
|
</div>
|
|
682
621
|
<a id="ac74f182ef249a7c892ba9c630f889ddc"></a>
|
|
@@ -704,8 +643,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
704
643
|
|
|
705
644
|
<p>Return the unique true condition. </p>
|
|
706
645
|
|
|
707
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
708
|
-
<div class="fragment"><div class="line"><a name="
|
|
646
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00172">172</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
647
|
+
<div class="fragment"><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> <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="ttc" id="classSVF_1_1CondManager_html_aed854ecc55a568597f7d7f1f78fb92f4"><div class="ttname"><a href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">SVF::CondManager::trueCond</a></div><div class="ttdeci">static CondExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00228">Conditions.h:228</a></div></div>
|
|
709
648
|
</div><!-- fragment -->
|
|
710
649
|
</div>
|
|
711
650
|
</div>
|
|
@@ -728,14 +667,14 @@ Static Private Attributes</h2></td></tr>
|
|
|
728
667
|
<p>Whether <b>All Paths</b> are reachable. </p>
|
|
729
668
|
<p>Whether <b>All Paths</b> are reachable </p>
|
|
730
669
|
|
|
731
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
732
|
-
<div class="fragment"><div class="line"><a name="
|
|
733
|
-
<div class="ttc" id="
|
|
670
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00058">58</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
671
|
+
<div class="fragment"><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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">isEquivalentBranchCond</a>(e, <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
|
|
672
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_aa20839631502b975590754e146242175"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">SVF::CondManager::isEquivalentBranchCond</a></div><div class="ttdeci">virtual bool isEquivalentBranchCond(const CondExpr *lhs, const CondExpr *rhs)=0</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions. </div></div>
|
|
734
673
|
</div><!-- fragment -->
|
|
735
674
|
</div>
|
|
736
675
|
</div>
|
|
737
|
-
<a id="
|
|
738
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
676
|
+
<a id="aa20839631502b975590754e146242175"></a>
|
|
677
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa20839631502b975590754e146242175">◆ </a></span>isEquivalentBranchCond()</h2>
|
|
739
678
|
|
|
740
679
|
<div class="memitem">
|
|
741
680
|
<div class="memproto">
|
|
@@ -744,7 +683,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
744
683
|
<td class="mlabels-left">
|
|
745
684
|
<table class="memname">
|
|
746
685
|
<tr>
|
|
747
|
-
<td class="memname">bool SVF::CondManager::isEquivalentBranchCond </td>
|
|
686
|
+
<td class="memname">virtual bool SVF::CondManager::isEquivalentBranchCond </td>
|
|
748
687
|
<td>(</td>
|
|
749
688
|
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
750
689
|
<td class="paramname"><em>lhs</em>, </td>
|
|
@@ -758,25 +697,24 @@ Static Private Attributes</h2></td></tr>
|
|
|
758
697
|
<tr>
|
|
759
698
|
<td></td>
|
|
760
699
|
<td>)</td>
|
|
761
|
-
<td></td><td
|
|
700
|
+
<td></td><td></td>
|
|
762
701
|
</tr>
|
|
763
702
|
</table>
|
|
764
703
|
</td>
|
|
765
704
|
<td class="mlabels-right">
|
|
766
|
-
<span class="mlabels"><span class="mlabel">
|
|
705
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
767
706
|
</tr>
|
|
768
707
|
</table>
|
|
769
708
|
</div><div class="memdoc">
|
|
770
709
|
|
|
771
710
|
<p>Whether lhs and rhs are equivalent branch conditions. </p>
|
|
772
711
|
|
|
773
|
-
<p
|
|
774
|
-
|
|
775
|
-
</div><!-- fragment -->
|
|
712
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a4ce1ff325aab55d7bef7d28fe79f4cde">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a34d8f9fc93bb82a8916ae45534ef5941">SVF::Z3Manager</a>.</p>
|
|
713
|
+
|
|
776
714
|
</div>
|
|
777
715
|
</div>
|
|
778
|
-
<a id="
|
|
779
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
716
|
+
<a id="a1007afa25f9a95c5d12c58852ef74686"></a>
|
|
717
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a1007afa25f9a95c5d12c58852ef74686">◆ </a></span>isNegCond()</h2>
|
|
780
718
|
|
|
781
719
|
<div class="memitem">
|
|
782
720
|
<div class="memproto">
|
|
@@ -785,7 +723,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
785
723
|
<td class="mlabels-left">
|
|
786
724
|
<table class="memname">
|
|
787
725
|
<tr>
|
|
788
|
-
<td class="memname">bool SVF::CondManager::isNegCond </td>
|
|
726
|
+
<td class="memname">virtual bool SVF::CondManager::isNegCond </td>
|
|
789
727
|
<td>(</td>
|
|
790
728
|
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
791
729
|
<td class="paramname"><em>cond</em></td><td>)</td>
|
|
@@ -794,77 +732,84 @@ Static Private Attributes</h2></td></tr>
|
|
|
794
732
|
</table>
|
|
795
733
|
</td>
|
|
796
734
|
<td class="mlabels-right">
|
|
797
|
-
<span class="mlabels"><span class="mlabel">
|
|
735
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
798
736
|
</tr>
|
|
799
737
|
</table>
|
|
800
738
|
</div><div class="memdoc">
|
|
801
739
|
|
|
802
|
-
<p
|
|
803
|
-
|
|
804
|
-
</div><!-- fragment -->
|
|
740
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a4a1c1534e9e23ea326008abf1d318369">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a869828207971498df1fd7c9f29d3e999">SVF::Z3Manager</a>.</p>
|
|
741
|
+
|
|
805
742
|
</div>
|
|
806
743
|
</div>
|
|
807
|
-
<a id="
|
|
808
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
744
|
+
<a id="a5ef85ea09500adc006a25c1eb3426831"></a>
|
|
745
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a5ef85ea09500adc006a25c1eb3426831">◆ </a></span>isSatisfiable()</h2>
|
|
809
746
|
|
|
810
747
|
<div class="memitem">
|
|
811
748
|
<div class="memproto">
|
|
749
|
+
<table class="mlabels">
|
|
750
|
+
<tr>
|
|
751
|
+
<td class="mlabels-left">
|
|
812
752
|
<table class="memname">
|
|
813
753
|
<tr>
|
|
814
|
-
<td class="memname">bool CondManager::isSatisfiable </td>
|
|
754
|
+
<td class="memname">virtual bool SVF::CondManager::isSatisfiable </td>
|
|
815
755
|
<td>(</td>
|
|
816
756
|
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
817
757
|
<td class="paramname"><em>cond</em></td><td>)</td>
|
|
818
758
|
<td></td>
|
|
819
759
|
</tr>
|
|
820
760
|
</table>
|
|
761
|
+
</td>
|
|
762
|
+
<td class="mlabels-right">
|
|
763
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
764
|
+
</tr>
|
|
765
|
+
</table>
|
|
821
766
|
</div><div class="memdoc">
|
|
822
767
|
|
|
823
768
|
<p>Whether the condition is satisfiable. </p>
|
|
824
|
-
<p>Whether the condition is satisfiable </p>
|
|
825
769
|
|
|
826
|
-
<p
|
|
827
|
-
|
|
828
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
829
|
-
<div class="ttc" id="cuddInt_8c_html_a8b2e13c78efca330f06b6ddcd7464b41"><div class="ttname"><a href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a></div><div class="ttdeci">static int result</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l07466">cuddInt.c:7466</a></div></div>
|
|
830
|
-
</div><!-- fragment -->
|
|
770
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#aecd072d15ee8a4a9940b31ac78c50960">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a98916f1ae12b8c2bb98231b19c94d928">SVF::Z3Manager</a>.</p>
|
|
771
|
+
|
|
831
772
|
</div>
|
|
832
773
|
</div>
|
|
833
|
-
<a id="
|
|
834
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
774
|
+
<a id="aecb97f6eb6ba2943b2eaa7a8212a9ba6"></a>
|
|
775
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aecb97f6eb6ba2943b2eaa7a8212a9ba6">◆ </a></span>NEG()</h2>
|
|
835
776
|
|
|
836
777
|
<div class="memitem">
|
|
837
778
|
<div class="memproto">
|
|
779
|
+
<table class="mlabels">
|
|
780
|
+
<tr>
|
|
781
|
+
<td class="mlabels-left">
|
|
838
782
|
<table class="memname">
|
|
839
783
|
<tr>
|
|
840
|
-
<td class="memname"
|
|
784
|
+
<td class="memname">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::CondManager::NEG </td>
|
|
841
785
|
<td>(</td>
|
|
842
786
|
<td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
843
787
|
<td class="paramname"><em>lhs</em></td><td>)</td>
|
|
844
788
|
<td></td>
|
|
845
789
|
</tr>
|
|
846
790
|
</table>
|
|
791
|
+
</td>
|
|
792
|
+
<td class="mlabels-right">
|
|
793
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
794
|
+
</tr>
|
|
795
|
+
</table>
|
|
847
796
|
</div><div class="memdoc">
|
|
848
797
|
|
|
849
|
-
<p
|
|
850
|
-
|
|
851
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00226">Conditions.h:226</a></div></div>
|
|
852
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
|
|
853
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_ad7832b33b3b73fcaca5c8278ed4d3e7f"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ad7832b33b3b73fcaca5c8278ed4d3e7f">SVF::BranchCondManager::NEG</a></div><div class="ttdeci">BranchCond * NEG(BranchCond *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00313">Conditions.cpp:313</a></div></div>
|
|
854
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
855
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00231">Conditions.h:231</a></div></div>
|
|
856
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
|
|
857
|
-
</div><!-- fragment -->
|
|
798
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a0dbbee1845fbf6ce660caf6c30438bef">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#a5fcfc5dcdd77d9860aaaff9cd9f43c55">SVF::Z3Manager</a>.</p>
|
|
799
|
+
|
|
858
800
|
</div>
|
|
859
801
|
</div>
|
|
860
|
-
<a id="
|
|
861
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
802
|
+
<a id="aa6dcd9cb78deef05b6c4d4e9b6b0a16b"></a>
|
|
803
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">◆ </a></span>OR()</h2>
|
|
862
804
|
|
|
863
805
|
<div class="memitem">
|
|
864
806
|
<div class="memproto">
|
|
807
|
+
<table class="mlabels">
|
|
808
|
+
<tr>
|
|
809
|
+
<td class="mlabels-left">
|
|
865
810
|
<table class="memname">
|
|
866
811
|
<tr>
|
|
867
|
-
<td class="memname"
|
|
812
|
+
<td class="memname">virtual <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::CondManager::OR </td>
|
|
868
813
|
<td>(</td>
|
|
869
814
|
<td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
870
815
|
<td class="paramname"><em>lhs</em>, </td>
|
|
@@ -881,75 +826,15 @@ Static Private Attributes</h2></td></tr>
|
|
|
881
826
|
<td></td><td></td>
|
|
882
827
|
</tr>
|
|
883
828
|
</table>
|
|
884
|
-
</div><div class="memdoc">
|
|
885
|
-
|
|
886
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00149">149</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
887
|
-
<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="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>() || rhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a7f3fa5e90c08950099ff6f05e96ecb9c">OR</a>(SVFUtil::dyn_cast<BranchCondExpr>(lhs)->getBranchCond(),</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  SVFUtil::dyn_cast<BranchCondExpr>(rhs)->getBranchCond());</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> z3::expr &expr = lhs-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() || rhs-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(expr, branchCond);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
|
|
888
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00226">Conditions.h:226</a></div></div>
|
|
889
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
|
|
890
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a7f3fa5e90c08950099ff6f05e96ecb9c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a7f3fa5e90c08950099ff6f05e96ecb9c">SVF::BranchCondManager::OR</a></div><div class="ttdeci">BranchCond * OR(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00288">Conditions.cpp:288</a></div></div>
|
|
891
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
892
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00231">Conditions.h:231</a></div></div>
|
|
893
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
|
|
894
|
-
</div><!-- fragment -->
|
|
895
|
-
</div>
|
|
896
|
-
</div>
|
|
897
|
-
<a id="a385339096b4322654b5b2c7a37e852fe"></a>
|
|
898
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a385339096b4322654b5b2c7a37e852fe">◆ </a></span>printDbg()</h2>
|
|
899
|
-
|
|
900
|
-
<div class="memitem">
|
|
901
|
-
<div class="memproto">
|
|
902
|
-
<table class="mlabels">
|
|
903
|
-
<tr>
|
|
904
|
-
<td class="mlabels-left">
|
|
905
|
-
<table class="memname">
|
|
906
|
-
<tr>
|
|
907
|
-
<td class="memname">void CondManager::printDbg </td>
|
|
908
|
-
<td>(</td>
|
|
909
|
-
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
910
|
-
<td class="paramname"><em>e</em></td><td>)</td>
|
|
911
|
-
<td></td>
|
|
912
|
-
</tr>
|
|
913
|
-
</table>
|
|
914
829
|
</td>
|
|
915
830
|
<td class="mlabels-right">
|
|
916
|
-
<span class="mlabels"><span class="mlabel">
|
|
831
|
+
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
917
832
|
</tr>
|
|
918
833
|
</table>
|
|
919
834
|
</div><div class="memdoc">
|
|
920
835
|
|
|
921
|
-
<p>
|
|
922
|
-
<p>Print out one particular expression </p>
|
|
836
|
+
<p>Implemented in <a class="el" href="classSVF_1_1BDDManager.html#a6c5d935cc7c9ee02a0a37f7fcce34a89">SVF::BDDManager</a>, and <a class="el" href="classSVF_1_1Z3Manager.html#af50dd899af45580176376d2bb7cf6243">SVF::Z3Manager</a>.</p>
|
|
923
837
|
|
|
924
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00242">242</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
925
|
-
<div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << e-><a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
926
|
-
<div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr & getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
|
|
927
|
-
</div><!-- fragment -->
|
|
928
|
-
</div>
|
|
929
|
-
</div>
|
|
930
|
-
<a id="ab9772aa1a35e963ccc9ce1007ebc1310"></a>
|
|
931
|
-
<h2 class="memtitle"><span class="permalink"><a href="#ab9772aa1a35e963ccc9ce1007ebc1310">◆ </a></span>printModel()</h2>
|
|
932
|
-
|
|
933
|
-
<div class="memitem">
|
|
934
|
-
<div class="memproto">
|
|
935
|
-
<table class="memname">
|
|
936
|
-
<tr>
|
|
937
|
-
<td class="memname">void CondManager::printModel </td>
|
|
938
|
-
<td>(</td>
|
|
939
|
-
<td class="paramname"></td><td>)</td>
|
|
940
|
-
<td></td>
|
|
941
|
-
</tr>
|
|
942
|
-
</table>
|
|
943
|
-
</div><div class="memdoc">
|
|
944
|
-
|
|
945
|
-
<p>Dump out all expressions. </p>
|
|
946
|
-
<p>Print the expressions in this model </p>
|
|
947
|
-
|
|
948
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00179">179</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
949
|
-
<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.check() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  z3::model m = <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.get_model();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < m.size(); i++)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  z3::func_decl v = m[i];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << v.name() << <span class="stringliteral">" = "</span> << m.get_const_interp(v) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
|
|
950
|
-
<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#l00077">SVFBasicTypes.h:77</a></div></div>
|
|
951
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
952
|
-
</div><!-- fragment -->
|
|
953
838
|
</div>
|
|
954
839
|
</div>
|
|
955
840
|
<a id="a2748338b4a5b122b5bbf4a9cb1f54211"></a>
|
|
@@ -975,8 +860,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
975
860
|
</table>
|
|
976
861
|
</div><div class="memdoc">
|
|
977
862
|
|
|
978
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
979
|
-
<div class="fragment"><div class="line"><a name="
|
|
863
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00156">156</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
864
|
+
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="ttc" id="classSVF_1_1CondManager_html_a1e48008a3fe3a562512e253133aa557f"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">SVF::CondManager::condMgr</a></div><div class="ttdeci">static CondManager * condMgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00143">Conditions.h:143</a></div></div>
|
|
980
865
|
</div><!-- fragment -->
|
|
981
866
|
</div>
|
|
982
867
|
</div>
|
|
@@ -1014,155 +899,13 @@ Static Private Attributes</h2></td></tr>
|
|
|
1014
899
|
</table>
|
|
1015
900
|
</div><div class="memdoc">
|
|
1016
901
|
|
|
1017
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
1018
|
-
<div class="fragment"><div class="line"><a name="
|
|
1019
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#
|
|
1020
|
-
</div><!-- fragment -->
|
|
1021
|
-
</div>
|
|
1022
|
-
</div>
|
|
1023
|
-
<a id="a049541fec44cac3401a0dc68ff2f0ac1"></a>
|
|
1024
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a049541fec44cac3401a0dc68ff2f0ac1">◆ </a></span>setNegCondInst()</h2>
|
|
1025
|
-
|
|
1026
|
-
<div class="memitem">
|
|
1027
|
-
<div class="memproto">
|
|
1028
|
-
<table class="mlabels">
|
|
1029
|
-
<tr>
|
|
1030
|
-
<td class="mlabels-left">
|
|
1031
|
-
<table class="memname">
|
|
1032
|
-
<tr>
|
|
1033
|
-
<td class="memname">void SVF::CondManager::setNegCondInst </td>
|
|
1034
|
-
<td>(</td>
|
|
1035
|
-
<td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * </td>
|
|
1036
|
-
<td class="paramname"><em>cond</em>, </td>
|
|
1037
|
-
</tr>
|
|
1038
|
-
<tr>
|
|
1039
|
-
<td class="paramkey"></td>
|
|
1040
|
-
<td></td>
|
|
1041
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
1042
|
-
<td class="paramname"><em>inst</em> </td>
|
|
1043
|
-
</tr>
|
|
1044
|
-
<tr>
|
|
1045
|
-
<td></td>
|
|
1046
|
-
<td>)</td>
|
|
1047
|
-
<td></td><td></td>
|
|
1048
|
-
</tr>
|
|
1049
|
-
</table>
|
|
1050
|
-
</td>
|
|
1051
|
-
<td class="mlabels-right">
|
|
1052
|
-
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
1053
|
-
</tr>
|
|
1054
|
-
</table>
|
|
1055
|
-
</div><div class="memdoc">
|
|
1056
|
-
|
|
1057
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00291">291</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1058
|
-
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a>.set(cond->getId());</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div><div class="ttc" id="classSVF_1_1CondManager_html_aa5e6dbdb4c88941996f7865a2d3ca314"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">SVF::CondManager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00310">Conditions.h:310</a></div></div>
|
|
1059
|
-
<div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00286">Conditions.h:286</a></div></div>
|
|
1060
|
-
</div><!-- fragment -->
|
|
1061
|
-
</div>
|
|
1062
|
-
</div>
|
|
1063
|
-
<a id="aeb4f9f4968f57602d12225757073f0f8"></a>
|
|
1064
|
-
<h2 class="memtitle"><span class="permalink"><a href="#aeb4f9f4968f57602d12225757073f0f8">◆ </a></span>simplify()</h2>
|
|
1065
|
-
|
|
1066
|
-
<div class="memitem">
|
|
1067
|
-
<div class="memproto">
|
|
1068
|
-
<table class="memname">
|
|
1069
|
-
<tr>
|
|
1070
|
-
<td class="memname">z3::expr CondManager::simplify </td>
|
|
1071
|
-
<td>(</td>
|
|
1072
|
-
<td class="paramtype">const z3::expr & </td>
|
|
1073
|
-
<td class="paramname"><em>expr</em></td><td>)</td>
|
|
1074
|
-
<td> const</td>
|
|
1075
|
-
</tr>
|
|
1076
|
-
</table>
|
|
1077
|
-
</div><div class="memdoc">
|
|
1078
|
-
|
|
1079
|
-
<p>Preprocess the condition, e.g., Compressing using And-Inverter-Graph. </p>
|
|
1080
|
-
<p>Preprocess the condition, e.g., Compressing using And-Inverter-Graph, Gaussian Elimination </p>
|
|
1081
|
-
|
|
1082
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00069">69</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
1083
|
-
<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>  z3::goal g(expr.ctx());</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  z3::tactic qe =</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  z3::tactic(expr.ctx(), <span class="stringliteral">"aig"</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  g.add(expr);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  z3::apply_result r = qe(g);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  z3::expr res(expr.ctx().bool_val(<span class="keyword">false</span>));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < r.size(); ++i) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (res.is_false()) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  res = r[i].as_expr();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  res = res || r[i].as_expr();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div><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#l00077">SVFBasicTypes.h:77</a></div></div>
|
|
902
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00212">212</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
903
|
+
<div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.find(cond) == <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.end() && <span class="stringliteral">"this should be a fresh condition"</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>[cond] = inst;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</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>
|
|
904
|
+
<div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00233">Conditions.h:233</a></div></div>
|
|
1084
905
|
</div><!-- fragment -->
|
|
1085
906
|
</div>
|
|
1086
907
|
</div>
|
|
1087
908
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
1088
|
-
<a id="a3621c17b2ff1beb7aa4e467ec357713b"></a>
|
|
1089
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a3621c17b2ff1beb7aa4e467ec357713b">◆ </a></span>allocatedConds</h2>
|
|
1090
|
-
|
|
1091
|
-
<div class="memitem">
|
|
1092
|
-
<div class="memproto">
|
|
1093
|
-
<table class="mlabels">
|
|
1094
|
-
<tr>
|
|
1095
|
-
<td class="mlabels-left">
|
|
1096
|
-
<table class="memname">
|
|
1097
|
-
<tr>
|
|
1098
|
-
<td class="memname"><a class="el" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">IDToCondExprMap</a> SVF::CondManager::allocatedConds</td>
|
|
1099
|
-
</tr>
|
|
1100
|
-
</table>
|
|
1101
|
-
</td>
|
|
1102
|
-
<td class="mlabels-right">
|
|
1103
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
1104
|
-
</tr>
|
|
1105
|
-
</table>
|
|
1106
|
-
</div><div class="memdoc">
|
|
1107
|
-
|
|
1108
|
-
<p>map condition id (z3 ast id) to its Condition wrapper </p>
|
|
1109
|
-
|
|
1110
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00306">306</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1111
|
-
|
|
1112
|
-
</div>
|
|
1113
|
-
</div>
|
|
1114
|
-
<a id="ac735eb27ed4328f97ced87494683f7f1"></a>
|
|
1115
|
-
<h2 class="memtitle"><span class="permalink"><a href="#ac735eb27ed4328f97ced87494683f7f1">◆ </a></span>branchCondManager</h2>
|
|
1116
|
-
|
|
1117
|
-
<div class="memitem">
|
|
1118
|
-
<div class="memproto">
|
|
1119
|
-
<table class="mlabels">
|
|
1120
|
-
<tr>
|
|
1121
|
-
<td class="mlabels-left">
|
|
1122
|
-
<table class="memname">
|
|
1123
|
-
<tr>
|
|
1124
|
-
<td class="memname"><a class="el" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a> SVF::CondManager::branchCondManager</td>
|
|
1125
|
-
</tr>
|
|
1126
|
-
</table>
|
|
1127
|
-
</td>
|
|
1128
|
-
<td class="mlabels-right">
|
|
1129
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
1130
|
-
</tr>
|
|
1131
|
-
</table>
|
|
1132
|
-
</div><div class="memdoc">
|
|
1133
|
-
|
|
1134
|
-
<p>branch condition manager </p>
|
|
1135
|
-
|
|
1136
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00309">309</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1137
|
-
|
|
1138
|
-
</div>
|
|
1139
|
-
</div>
|
|
1140
|
-
<a id="afd01891f45e085e990c9dbba5cbf3914"></a>
|
|
1141
|
-
<h2 class="memtitle"><span class="permalink"><a href="#afd01891f45e085e990c9dbba5cbf3914">◆ </a></span>branchCondToCondExpr</h2>
|
|
1142
|
-
|
|
1143
|
-
<div class="memitem">
|
|
1144
|
-
<div class="memproto">
|
|
1145
|
-
<table class="mlabels">
|
|
1146
|
-
<tr>
|
|
1147
|
-
<td class="mlabels-left">
|
|
1148
|
-
<table class="memname">
|
|
1149
|
-
<tr>
|
|
1150
|
-
<td class="memname"><a class="el" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">BranchCondToCondExprMap</a> SVF::CondManager::branchCondToCondExpr</td>
|
|
1151
|
-
</tr>
|
|
1152
|
-
</table>
|
|
1153
|
-
</td>
|
|
1154
|
-
<td class="mlabels-right">
|
|
1155
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
1156
|
-
</tr>
|
|
1157
|
-
</table>
|
|
1158
|
-
</div><div class="memdoc">
|
|
1159
|
-
|
|
1160
|
-
<p>map branch condition to its Condition wrapper </p>
|
|
1161
|
-
|
|
1162
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00307">307</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1163
|
-
|
|
1164
|
-
</div>
|
|
1165
|
-
</div>
|
|
1166
909
|
<a id="a1e48008a3fe3a562512e253133aa557f"></a>
|
|
1167
910
|
<h2 class="memtitle"><span class="permalink"><a href="#a1e48008a3fe3a562512e253133aa557f">◆ </a></span>condMgr</h2>
|
|
1168
911
|
|
|
@@ -1183,7 +926,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1183
926
|
</table>
|
|
1184
927
|
</div><div class="memdoc">
|
|
1185
928
|
|
|
1186
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
929
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00143">143</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1187
930
|
|
|
1188
931
|
</div>
|
|
1189
932
|
</div>
|
|
@@ -1197,7 +940,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1197
940
|
<td class="mlabels-left">
|
|
1198
941
|
<table class="memname">
|
|
1199
942
|
<tr>
|
|
1200
|
-
<td class="memname"><a class="el" href="classSVF_1_1CondManager.html#
|
|
943
|
+
<td class="memname"><a class="el" href="classSVF_1_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">CondToTermInstMap</a> SVF::CondManager::condToInstMap</td>
|
|
1201
944
|
</tr>
|
|
1202
945
|
</table>
|
|
1203
946
|
</td>
|
|
@@ -1209,31 +952,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1209
952
|
|
|
1210
953
|
<p>map condition to llvm instruction </p>
|
|
1211
954
|
|
|
1212
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
1213
|
-
|
|
1214
|
-
</div>
|
|
1215
|
-
</div>
|
|
1216
|
-
<a id="a087773d6ae6ed6af009a356dd7b61e11"></a>
|
|
1217
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a087773d6ae6ed6af009a356dd7b61e11">◆ </a></span>cxt</h2>
|
|
1218
|
-
|
|
1219
|
-
<div class="memitem">
|
|
1220
|
-
<div class="memproto">
|
|
1221
|
-
<table class="mlabels">
|
|
1222
|
-
<tr>
|
|
1223
|
-
<td class="mlabels-left">
|
|
1224
|
-
<table class="memname">
|
|
1225
|
-
<tr>
|
|
1226
|
-
<td class="memname">z3::context SVF::CondManager::cxt</td>
|
|
1227
|
-
</tr>
|
|
1228
|
-
</table>
|
|
1229
|
-
</td>
|
|
1230
|
-
<td class="mlabels-right">
|
|
1231
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
1232
|
-
</tr>
|
|
1233
|
-
</table>
|
|
1234
|
-
</div><div class="memdoc">
|
|
1235
|
-
|
|
1236
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00302">302</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
955
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00233">233</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1237
956
|
|
|
1238
957
|
</div>
|
|
1239
958
|
</div>
|
|
@@ -1252,60 +971,12 @@ Static Private Attributes</h2></td></tr>
|
|
|
1252
971
|
</table>
|
|
1253
972
|
</td>
|
|
1254
973
|
<td class="mlabels-right">
|
|
1255
|
-
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">
|
|
1256
|
-
</tr>
|
|
1257
|
-
</table>
|
|
1258
|
-
</div><div class="memdoc">
|
|
1259
|
-
|
|
1260
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00305">305</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1261
|
-
|
|
1262
|
-
</div>
|
|
1263
|
-
</div>
|
|
1264
|
-
<a id="aa5e6dbdb4c88941996f7865a2d3ca314"></a>
|
|
1265
|
-
<h2 class="memtitle"><span class="permalink"><a href="#aa5e6dbdb4c88941996f7865a2d3ca314">◆ </a></span>negConds</h2>
|
|
1266
|
-
|
|
1267
|
-
<div class="memitem">
|
|
1268
|
-
<div class="memproto">
|
|
1269
|
-
<table class="mlabels">
|
|
1270
|
-
<tr>
|
|
1271
|
-
<td class="mlabels-left">
|
|
1272
|
-
<table class="memname">
|
|
1273
|
-
<tr>
|
|
1274
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> SVF::CondManager::negConds</td>
|
|
1275
|
-
</tr>
|
|
1276
|
-
</table>
|
|
1277
|
-
</td>
|
|
1278
|
-
<td class="mlabels-right">
|
|
1279
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
974
|
+
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
|
|
1280
975
|
</tr>
|
|
1281
976
|
</table>
|
|
1282
977
|
</div><div class="memdoc">
|
|
1283
978
|
|
|
1284
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
1285
|
-
|
|
1286
|
-
</div>
|
|
1287
|
-
</div>
|
|
1288
|
-
<a id="a771bda4bb55dd8c95a03f1a74a215126"></a>
|
|
1289
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a771bda4bb55dd8c95a03f1a74a215126">◆ </a></span>sol</h2>
|
|
1290
|
-
|
|
1291
|
-
<div class="memitem">
|
|
1292
|
-
<div class="memproto">
|
|
1293
|
-
<table class="mlabels">
|
|
1294
|
-
<tr>
|
|
1295
|
-
<td class="mlabels-left">
|
|
1296
|
-
<table class="memname">
|
|
1297
|
-
<tr>
|
|
1298
|
-
<td class="memname">z3::solver SVF::CondManager::sol</td>
|
|
1299
|
-
</tr>
|
|
1300
|
-
</table>
|
|
1301
|
-
</td>
|
|
1302
|
-
<td class="mlabels-right">
|
|
1303
|
-
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
1304
|
-
</tr>
|
|
1305
|
-
</table>
|
|
1306
|
-
</div><div class="memdoc">
|
|
1307
|
-
|
|
1308
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00303">303</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
979
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00229">229</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1309
980
|
|
|
1310
981
|
</div>
|
|
1311
982
|
</div>
|
|
@@ -1329,7 +1000,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1329
1000
|
</table>
|
|
1330
1001
|
</div><div class="memdoc">
|
|
1331
1002
|
|
|
1332
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
1003
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00151">151</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1333
1004
|
|
|
1334
1005
|
</div>
|
|
1335
1006
|
</div>
|
|
@@ -1348,12 +1019,12 @@ Static Private Attributes</h2></td></tr>
|
|
|
1348
1019
|
</table>
|
|
1349
1020
|
</td>
|
|
1350
1021
|
<td class="mlabels-right">
|
|
1351
|
-
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">
|
|
1022
|
+
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
|
|
1352
1023
|
</tr>
|
|
1353
1024
|
</table>
|
|
1354
1025
|
</div><div class="memdoc">
|
|
1355
1026
|
|
|
1356
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#
|
|
1027
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00228">228</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
|
|
1357
1028
|
|
|
1358
1029
|
</div>
|
|
1359
1030
|
</div>
|