let funvar_path x offset range =
    let base = Z.cvar (D.Xindex.get_ind x) x in
    let te = Ctypes.object_of x.vtype in
    let atomic = Z.is_atomic te in
    match offset,range with
      | [],None -> Z.block base
      | _ -> funvar_offset ~atomic base (Z.p_block ~atomic te) offset range