method vfunc f =
    let local v =
      if VarinfoHashtbl.mem cursor_to_base v then
        let name = unique_name ("__jc_off_" ^ v.vname) in
        let voff = makeLocalVar f ~insert:true name almost_integer_type in
        VarinfoHashtbl.add cursor_to_offset v voff
    in
    let formal v =
      if VarinfoHashtbl.mem cursor_to_base v
        && VarinfoSet.mem v assigned_vars then
          (* Formal is assigned and still a self-base, an offset is needed *)
          begin
          local v; (* Create an offset variable for this formal *)
          let voff = VarinfoHashtbl.find cursor_to_offset v in
          let initst =
            mkStmt(Instr(Set((Var voff,NoOffset),
                             constant_expr 0L,
                             CurrentLoc.get ())))
          in
          add_pending_statement ~beginning:true initst
          end
      else ()
    in
    List.iter formal f.sformals;
    List.iter local f.slocals;
    DoChildren