let get_var ~create tbl_opt label v get_tau =
try
match tbl_opt with None -> raise Not_found
| Some tbl -> Varinfo.Hashtbl.find tbl v
with Not_found ->
if create then
let here = (label = Clabels.Here) in
let t = get_tau v in
let fv = fvar_of_cvar v t in
let fv =
if here then fv
else freshen () (*pool m.env*) fv
in
let _ = match tbl_opt with
| None -> if here then () else unsupported "get_var without tbl"
| Some tbl -> Varinfo.Hashtbl.add tbl v fv
in fv
else raise Not_found