summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKathy Gray2016-03-16 12:17:37 +0000
committerKathy Gray2016-03-16 12:17:37 +0000
commit6cd84c62503ab509a347ddd04cd96f234a197d45 (patch)
treeaa4910ffce3b929cf3a919b1fef2b2d722a797d9 /src
parent9041a82606481750788ff5088021e39a4b9b3a6a (diff)
Fix case of missing undef options in compare
Diffstat (limited to 'src')
-rw-r--r--src/lem_interp/interp_lib.lem6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem
index df5413ae..e8313e05 100644
--- a/src/lem_interp/interp_lib.lem
+++ b/src/lem_interp/interp_lib.lem
@@ -549,9 +549,11 @@ let rec shift_op_vec op (V_tuple [vl;vr]) =
((List.replicate n (V_lit (L_aux L_zero Unknown))) ++ (from_n_to_n 0 (n-1) cs))
| "<<<" ->
V_vector b ord
- ((from_n_to_n n ((length cs) -1) cs) ++ (from_n_to_n 0 (n-1) cs)) end)
+ ((from_n_to_n n ((length cs) -1) cs) ++ (from_n_to_n 0 (n-1) cs)) end)
| (V_unknown,_) -> V_unknown
| (_,V_unknown) -> V_unknown
+ | (V_lit (L_aux L_undef lx), _) -> V_lit (L_aux L_undef lx)
+ | (_, V_lit (L_aux L_undef ly)) -> V_lit (L_aux L_undef ly)
end in
binary_taint arith_op_help vl vr
@@ -560,6 +562,8 @@ let compare_op op (V_tuple [vl;vr]) =
let comp_help vl vr = match (vl,vr) with
| (V_unknown,_) -> V_unknown
| (_,V_unknown) -> V_unknown
+ | (V_lit (L_aux L_undef lx), _) -> V_lit (L_aux L_undef lx)
+ | (_, V_lit (L_aux L_undef ly)) -> V_lit (L_aux L_undef ly)
| (V_lit(L_aux (L_num x) lx), V_lit(L_aux (L_num y) ly)) ->
if (op x y)
then V_lit(L_aux L_one lx)