let field loc f =
      if f.fcomp.cstruct then
        let pos = offset_of_field f in
        let cv = Ctypes.object_of f.ftype in 
        match loc with
          | Loc l -> 
              Loc (upd_obj (upd_off l (F.i_add l.off pos)) cv)
          | Addr (p,_) -> Addr (model_addr_shift p pos,cv)
      else
        unsupported "union field"