From 7ad2c7afe4afad31771a8c9995f96ef60f44bf32 Mon Sep 17 00:00:00 2001
From: Valentin Perrelle <valentin.perrelle@cea.fr>
Date: Thu, 2 Dec 2021 18:08:01 +0100
Subject: [PATCH] [Eva] multidim: fix writing overlaping the last bound

---
 src/kernel_services/abstract_interp/abstract_memory.ml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/kernel_services/abstract_interp/abstract_memory.ml b/src/kernel_services/abstract_interp/abstract_memory.ml
index 7290c7b8cbd..ea1ff820b2e 100644
--- a/src/kernel_services/abstract_interp/abstract_memory.ml
+++ b/src/kernel_services/abstract_interp/abstract_memory.ml
@@ -955,7 +955,9 @@ struct
       else
         match s with
         | [] ->
-          aux_end start head l (M.smash ~oracle v (M.of_raw m.padding)) uindex []
+          let u = B.upper_bound ~oracle:(fun _ -> oracle) u uindex
+          and v = M.smash ~oracle v (M.of_raw m.padding) in
+          aux_end start head l v u []
         | (v',u') :: t ->
           (* TODO: do not smash if the slices are covered by the write *)
           aux_over start head l (M.smash ~oracle v v') u' t
-- 
GitLab