diff options
| author | Kathy Gray | 2016-03-16 12:17:37 +0000 |
|---|---|---|
| committer | Kathy Gray | 2016-03-16 12:17:37 +0000 |
| commit | 6cd84c62503ab509a347ddd04cd96f234a197d45 (patch) | |
| tree | aa4910ffce3b929cf3a919b1fef2b2d722a797d9 /src | |
| parent | 9041a82606481750788ff5088021e39a4b9b3a6a (diff) | |
Fix case of missing undef options in compare
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp_lib.lem | 6 |
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) |
