From ffcde68d64de82b87a7212dc003b9efce7826782 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 11 Jun 2021 16:24:15 +0200 Subject: [PATCH] [eacsl] Fix generated pointer in `&a[x..y]` annotation The previous version generated `&a + x` instead of `a + x` but the pointer arithmetic on `&a + x` is that we move the pointer `x` times the size of the entire array instead of `x` times the size of an element of the array. --- src/plugins/e-acsl/src/code_generator/memory_translate.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plugins/e-acsl/src/code_generator/memory_translate.ml b/src/plugins/e-acsl/src/code_generator/memory_translate.ml index 41fedc2159b..8c05dec0200 100644 --- a/src/plugins/e-acsl/src/code_generator/memory_translate.ml +++ b/src/plugins/e-acsl/src/code_generator/memory_translate.ml @@ -339,7 +339,6 @@ let extract_quantifiers ~loc args = ([], []) args - (* [call_with_tset ~loc ~arg_from_range @@ -443,7 +442,7 @@ let call_with_tset ~loc ~arg_from_range ~arg_from_term ?(prepend_n_args=false) k assert (Logic_const.is_set_type t.term_type); let lty_noset = Logic_const.type_of_element t.term_type in let ptr = - Logic_const.taddrof ~loc (TVar lv, TNoOffset) lty_noset + Logic_const.term ~loc (TStartOf (TVar lv, TNoOffset)) lty_noset in arg_from_range ~loc kf env rev_args ptr r p | _ -> -- GitLab