method visit_addr lv =
    begin match lv with
      Var v, offset ->
        let offset' = visitCilOffset (self :> cilVisitor) offset in
        let v' = Cil.get_varinfo self#behavior v in
        if offset' == offset && v == v'
        then SkipChildren
        else ChangeTo (Var v', offset')
    | Mem e, offset ->
        let e' = visitCilExpr (self :> cilVisitor) e in
        let offset' = visitCilOffset (self :> cilVisitor) offset in
        if offset' == offset && e == e'
        then SkipChildren
        else ChangeTo (Mem e', offset')
    end;