svf-tools 1.0.898 → 1.0.899
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +4 -4
- package/SVF-doxygen/html/BoundedZ3Expr_8h_source.html +399 -395
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +4 -4
- package/SVF-doxygen/html/ConsExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/IntervalValue_8h_source.html +8 -8
- package/SVF-doxygen/html/NumericLiteral_8h_source.html +378 -371
- package/SVF-doxygen/html/Options_8cpp_source.html +10 -1
- package/SVF-doxygen/html/Options_8h_source.html +8 -4
- package/SVF-doxygen/html/RelExeState_8cpp_source.html +4 -4
- package/SVF-doxygen/html/RelExeState_8h_source.html +3 -3
- package/SVF-doxygen/html/RelationSolver_8cpp.html +2 -0
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +382 -374
- package/SVF-doxygen/html/RelationSolver_8h_source.html +10 -10
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/SingleAbsValue_8h_source.html +6 -6
- package/SVF-doxygen/html/Z3Expr_8cpp_source.html +5 -5
- package/SVF-doxygen/html/Z3Expr_8h_source.html +303 -294
- package/SVF-doxygen/html/ae_8cpp_source.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr-members.html +81 -80
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +337 -302
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1NumericLiteral-members.html +53 -52
- package/SVF-doxygen/html/classSVF_1_1NumericLiteral.html +333 -297
- package/SVF-doxygen/html/classSVF_1_1Options-members.html +129 -128
- package/SVF-doxygen/html/classSVF_1_1Options.html +26 -0
- package/SVF-doxygen/html/classSVF_1_1RelExeState.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +358 -354
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SingleAbsValue-members.html +100 -99
- package/SVF-doxygen/html/classSVF_1_1SingleAbsValue.html +11 -5
- package/SVF-doxygen/html/classSVF_1_1Z3Expr-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +227 -221
- package/SVF-doxygen/html/classSymblicAbstractionTest.html +4 -4
- package/SVF-doxygen/html/functions_a.html +9 -6
- package/SVF-doxygen/html/functions_b.html +6 -6
- package/SVF-doxygen/html/functions_func_b.html +3 -3
- package/SVF-doxygen/html/functions_func_g.html +15 -14
- package/SVF-doxygen/html/functions_func_i.html +2 -2
- package/SVF-doxygen/html/functions_func_z.html +1 -1
- package/SVF-doxygen/html/functions_g.html +18 -17
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_p.html +14 -18
- package/SVF-doxygen/html/functions_r.html +1 -1
- package/SVF-doxygen/html/functions_s.html +24 -20
- package/SVF-doxygen/html/functions_t.html +5 -5
- package/SVF-doxygen/html/functions_v.html +6 -6
- package/SVF-doxygen/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/functions_z.html +1 -1
- package/SVF-doxygen/html/search/all_1.js +133 -132
- package/SVF-doxygen/html/search/all_10.js +326 -326
- package/SVF-doxygen/html/search/all_11.js +226 -226
- package/SVF-doxygen/html/search/all_12.js +574 -574
- package/SVF-doxygen/html/search/all_13.js +208 -208
- package/SVF-doxygen/html/search/all_14.js +73 -73
- package/SVF-doxygen/html/search/all_15.js +176 -176
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -27
- package/SVF-doxygen/html/search/all_1a.js +179 -179
- package/SVF-doxygen/html/search/all_2.js +182 -182
- package/SVF-doxygen/html/search/all_3.js +642 -642
- package/SVF-doxygen/html/search/all_4.js +236 -236
- package/SVF-doxygen/html/search/all_5.js +126 -126
- package/SVF-doxygen/html/search/all_6.js +235 -235
- package/SVF-doxygen/html/search/all_7.js +1056 -1056
- package/SVF-doxygen/html/search/all_8.js +215 -215
- package/SVF-doxygen/html/search/all_9.js +632 -632
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +204 -204
- package/SVF-doxygen/html/search/all_e.js +209 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +28 -28
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +74 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +73 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +38 -38
- package/SVF-doxygen/html/search/classes_8.js +59 -59
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +4 -4
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +4 -4
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -9
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +4 -4
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_11.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_2.js +37 -37
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +49 -49
- package/SVF-doxygen/html/search/files_0.js +16 -16
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +53 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +17 -17
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +368 -368
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +299 -299
- package/SVF-doxygen/html/search/functions_13.js +73 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +72 -72
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +179 -179
- package/SVF-doxygen/html/search/functions_2.js +94 -94
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +57 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +872 -872
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +440 -440
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +36 -36
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -65
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +13 -13
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +177 -177
- package/SVF-doxygen/html/search/variables_1.js +77 -76
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -143
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +79 -79
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +57 -57
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +6 -6
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NumericLiteral_01_4.html +5 -5
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SingleAbsValue_01_4.html +1 -1
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +6 -6
- package/package.json +1 -1
- package/svf/include/AE/Core/BoundedZ3Expr.h +2 -0
- package/svf/include/AE/Core/IntervalValue.h +1 -1
- package/svf/include/AE/Core/NumericLiteral.h +6 -0
- package/svf/include/AE/Core/RelationSolver.h +1 -1
- package/svf/include/Util/Options.h +3 -0
- package/svf/include/Util/Z3Expr.h +9 -2
- package/svf/lib/AE/Core/RelationSolver.cpp +11 -6
- package/svf/lib/Util/Options.cpp +8 -0
|
@@ -44,8 +44,7 @@ public:
|
|
|
44
44
|
private:
|
|
45
45
|
z3::expr e;
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
Z3Expr(double f); // placeholder don't support floating point expression
|
|
47
|
+
|
|
49
48
|
|
|
50
49
|
public:
|
|
51
50
|
|
|
@@ -65,6 +64,14 @@ public:
|
|
|
65
64
|
{
|
|
66
65
|
}
|
|
67
66
|
|
|
67
|
+
Z3Expr(float f) : Z3Expr((double) f)
|
|
68
|
+
{
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
Z3Expr(double f): e(getContext().real_val(std::to_string(f).c_str()))
|
|
72
|
+
{
|
|
73
|
+
}
|
|
74
|
+
|
|
68
75
|
virtual ~Z3Expr() = default;
|
|
69
76
|
|
|
70
77
|
inline Z3Expr &operator=(const Z3Expr &rhs)
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
*
|
|
28
28
|
*/
|
|
29
29
|
#include "AE/Core/RelationSolver.h"
|
|
30
|
+
#include <cmath>
|
|
31
|
+
#include "Util/Options.h"
|
|
32
|
+
|
|
30
33
|
using namespace SVF;
|
|
31
34
|
using namespace SVFUtil;
|
|
32
35
|
|
|
@@ -59,7 +62,7 @@ IntervalESBase RelationSolver::bilateral(const IntervalESBase &domain, const Z3E
|
|
|
59
62
|
Z3Expr rhs = !(gamma_hat(consequence, domain));
|
|
60
63
|
solver.push();
|
|
61
64
|
solver.add(phi.getExpr() && rhs.getExpr());
|
|
62
|
-
Map<u32_t,
|
|
65
|
+
Map<u32_t, s32_t> solution;
|
|
63
66
|
z3::check_result checkRes = solver.check();
|
|
64
67
|
/// find any solution, which is sat
|
|
65
68
|
if (checkRes == z3::sat)
|
|
@@ -121,7 +124,7 @@ IntervalESBase RelationSolver::RSY(const IntervalESBase& domain, const Z3Expr& p
|
|
|
121
124
|
Z3Expr rhs = !(gamma_hat(lower, domain));
|
|
122
125
|
solver.push();
|
|
123
126
|
solver.add(phi.getExpr() && rhs.getExpr());
|
|
124
|
-
Map<u32_t,
|
|
127
|
+
Map<u32_t, s32_t> solution;
|
|
125
128
|
z3::check_result checkRes = solver.check();
|
|
126
129
|
/// find any solution, which is sat
|
|
127
130
|
if (checkRes == z3::sat)
|
|
@@ -238,7 +241,7 @@ Z3Expr RelationSolver::gamma_hat(u32_t id, const IntervalESBase& exeState) const
|
|
|
238
241
|
return res;
|
|
239
242
|
}
|
|
240
243
|
|
|
241
|
-
IntervalESBase RelationSolver::beta(const Map<u32_t,
|
|
244
|
+
IntervalESBase RelationSolver::beta(const Map<u32_t, s32_t>& sigma,
|
|
242
245
|
const IntervalESBase& exeState) const
|
|
243
246
|
{
|
|
244
247
|
IntervalESBase res;
|
|
@@ -268,7 +271,9 @@ IntervalESBase RelationSolver::BS(const IntervalESBase& domain, const Z3Expr &ph
|
|
|
268
271
|
/// because key of _varToItvVal is u32_t, -key may out of range for int
|
|
269
272
|
/// so we do key + bias for -key
|
|
270
273
|
u32_t bias = 0;
|
|
271
|
-
|
|
274
|
+
s32_t infinity = INT32_MAX - 1;
|
|
275
|
+
|
|
276
|
+
// int infinity = (INT32_MAX) - 1;
|
|
272
277
|
// int infinity = 20;
|
|
273
278
|
Map<u32_t, NumericLiteral> ret;
|
|
274
279
|
Map<u32_t, NumericLiteral> low_values, high_values;
|
|
@@ -343,7 +348,7 @@ Map<u32_t, NumericLiteral> RelationSolver::BoxedOptSolver(const Z3Expr& phi, Map
|
|
|
343
348
|
{
|
|
344
349
|
NumericLiteral mid = (low_values.at(item.first) + (high_values.at(item.first) - low_values.at(item.first)) / 2);
|
|
345
350
|
updateMap(mid_values, item.first, mid);
|
|
346
|
-
Z3Expr expr = (
|
|
351
|
+
Z3Expr expr = (mid.getExpr() <= v && v <= high_values.at(item.first).getExpr());
|
|
347
352
|
L_phi[item.first] = expr;
|
|
348
353
|
}
|
|
349
354
|
}
|
|
@@ -399,7 +404,7 @@ void RelationSolver::decide_cpa_ext(const Z3Expr& phi,
|
|
|
399
404
|
updateMap(mid_values, id, mid);
|
|
400
405
|
Z3Expr v = toZ3Expr(id);
|
|
401
406
|
// Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());
|
|
402
|
-
Z3Expr expr = (
|
|
407
|
+
Z3Expr expr = (mid_values.at(id).getExpr() <= v && v <= high_values.at(id).getExpr());
|
|
403
408
|
L_phi[id] = expr;
|
|
404
409
|
}
|
|
405
410
|
solver.pop();
|
package/svf/lib/Util/Options.cpp
CHANGED
|
@@ -853,4 +853,12 @@ const Option<bool> Options::RunUncallFuncs(
|
|
|
853
853
|
"run-uncall-fun","Skip Gep Unknown Index",false);
|
|
854
854
|
const Option<bool> Options::ICFGMergeAdjacentNodes(
|
|
855
855
|
"icfg-merge-adjnodes","ICFG Simplification - Merge Adjacent Nodes in the Same Basic Block.",false);
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
const Option<u32_t> Options::AEPrecision(
|
|
859
|
+
"precision",
|
|
860
|
+
"symbolic abstraction precision for float",
|
|
861
|
+
0
|
|
862
|
+
);
|
|
863
|
+
|
|
856
864
|
} // namespace SVF.
|