From 028d4a7cd53da44c908eebc2ef1eef8235471034 Mon Sep 17 00:00:00 2001
From: Thibault Martin <thibault.martin@cea.fr>
Date: Fri, 4 Oct 2019 17:10:44 +0100
Subject: [PATCH] Ajout de location pour __retres
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

__retres a maintenant pour location celle de la première occurence de Return
---
 src/kernel_internals/typing/oneret.ml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/kernel_internals/typing/oneret.ml b/src/kernel_internals/typing/oneret.ml
index 93f6d99db42..b38c76261b4 100644
--- a/src/kernel_internals/typing/oneret.ml
+++ b/src/kernel_internals/typing/oneret.ml
@@ -197,11 +197,12 @@ let oneret ?(callback: callback option) (f: fundec) : unit =
   let lastloc = ref Cil_datatype.Location.unknown in
   let getRetVar =
     let retVar : varinfo option ref = ref None in
-    fun () ->
+    fun ?(loc=Cil_datatype.Location.unknown) ()->
       match !retVar with
 	Some rv -> rv
       | None -> begin
             let rv = makeLocalVar f "__retres" retTyp in (* don't collide *)
+            rv.vdecl <- loc;
             retVar := Some rv;
             rv
       end
@@ -338,7 +339,7 @@ let oneret ?(callback: callback option) (f: fundec) : unit =
      * an instruction that sets the return value (if any). *)
       s.skind <- begin
         match retval with
-            Some rval -> Instr (Set((Var (getRetVar ()), NoOffset), rval, loc))
+            Some rval -> Instr (Set((Var (getRetVar ~loc ()), NoOffset), rval, loc))
           | None -> Instr (Skip loc)
       end;
       let returns_assert = ref ptrue in
-- 
GitLab