let get_new_offset my_host my_offset name=
  match my_host with
    | Cil_types.Var(var) ->
       let var_info = var in
       (* if my_offset is null no need to search the last field *)
       (* else we need to have the last *)

       let my_comp =
         if (my_offset = Cil_types.NoOffsetthen
           match var_info.Cil_types.vtype with
             | Cil_types.TComp(mc,_,_) -> mc
             | _ -> assert false
          (*Cil_types.TComp(my_comp,_,_) = var_info.Cil_types.vtype in*)

         else begin
           let get_field_from_offset my_offset = begin
             match my_offset with
               | Cil_types.Field(fieldinfo,_)  -> fieldinfo
               | _ ->  Aorai_option.fatal "support only struct no array wtih struct"
             end in
             let field_info = get_field_from_offset my_offset in
             let last_field_offset = get_last_field field_info my_offset in
             (* last field in offset but not the field we want, for that we search in*)
             let mc = last_field_offset.Cil_types.fcomp in
             mc
           end
         in

         let field_info = get_field_info_from_name my_comp.Cil_types.cfields name in
         Cil_types.Field(field_info,Cil_types.NoOffset)

     | _ -> Aorai_option.fatal "NOT YET IMPLEMENTED : mem is not supported"