summaryrefslogtreecommitdiff
path: root/src/lem_interp/interp_inter_imp.lem
diff options
context:
space:
mode:
Diffstat (limited to 'src/lem_interp/interp_inter_imp.lem')
-rw-r--r--src/lem_interp/interp_inter_imp.lem5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lem_interp/interp_inter_imp.lem b/src/lem_interp/interp_inter_imp.lem
index 92e5402c..4e1f8fe7 100644
--- a/src/lem_interp/interp_inter_imp.lem
+++ b/src/lem_interp/interp_inter_imp.lem
@@ -481,7 +481,10 @@ let rec interp_to_outcome mode context thunk =
| Interp.Write_memv (Id_aux (Id i) _) write_val ->
match List.lookup i mem_write_vals with
| (Just (MV return)) ->
- let (value, v_tracking) = (extern_mem_value mode write_val) in
+ let (value, v_tracking) =
+ match (Interp.detaint write_val) with
+ | Interp.V_tuple[_;v] -> (extern_mem_value mode (Interp.retaint write_val v))
+ | _ -> (extern_mem_value mode write_val) end in
Write_memv value v_tracking
(fun b ->
match return with