From e6b67397ca5c75582cee310edf0f79900fb3daa4 Mon Sep 17 00:00:00 2001
From: Basile Desloges <basile.desloges@cea.fr>
Date: Mon, 2 Aug 2021 17:31:10 +0200
Subject: [PATCH] [kernel] Add a function to create a term from a varinfo

---
 src/kernel_services/ast_queries/cil.ml  | 2 ++
 src/kernel_services/ast_queries/cil.mli | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml
index 695600d6793..d1b79a6fedb 100644
--- a/src/kernel_services/ast_queries/cil.ml
+++ b/src/kernel_services/ast_queries/cil.ml
@@ -4998,6 +4998,8 @@ let cvar_to_lvar vi = match vi.vlogic_var_assoc with
     vi.vlogic_var_assoc <- Some lv; lv
   | Some lv -> lv
 
+let cvar_to_term ~loc vi = tvar ~loc (cvar_to_lvar vi)
+
 let copyVarinfo (vi: varinfo) (newname: string) : varinfo =
   let vi' = Cil_const.copy_with_new_vid vi in
   vi'.vname <- newname;
diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli
index 8f83ecbc8be..d1becd81e78 100644
--- a/src/kernel_services/ast_queries/cil.mli
+++ b/src/kernel_services/ast_queries/cil.mli
@@ -2281,6 +2281,10 @@ val stmt_of_instr_list : ?loc:location -> instr list -> stmtkind
     The returned logic variable is unique for a given C variable. *)
 val cvar_to_lvar : varinfo -> logic_var
 
+(** Convert a C variable into a logic term.
+    @since Frama-C+dev *)
+val cvar_to_term: loc:location -> varinfo -> term
+
 (** Make a temporary variable to use in annotations *)
 val make_temp_logic_var: logic_type -> logic_var
 
-- 
GitLab