let var_name = function
    | VarT (v, None, _,_) -> v
    | VarT (v, Some id, _,_) -> Printf.sprintf "%s_%d" v id
    | VarL (v, _) ->
        let name = v.Cil_types.lv_name in
        match v.Cil_types.lv_origin with
          | Some _ -> name
          | _ -> Printf.sprintf "%s__%d" name v.Cil_types.lv_id