let rec pointer_of_loc loc : D.pointer =
match loc with
| L0addr v -> Hlib.addr (D.Xindex.get_ind v)
| L0depl (l, Pidx i) -> Hlib.shift_index (pointer_of_loc l) i
| L0depl (l, Pfield f) ->
let lt = pointer_of_loc l in
let tf = D.Findex.get_ind f in
if f.fcomp.cstruct
then Hlib.shift_field lt tf else Hlib.shift_ufield lt tf
| L0ptr p -> p
| L0shift (l,i) -> Hlib.shift_pointer (pointer_of_loc l) i