method vexpr e = match e.enode with
    | Const(CStr s) ->
        let v =
          findOrAdd string_to_var s
            (fun s ->
               make_glob ~wstring:false (string_var s) (String.length s)
                 (string_cabs_init s))
        in
        ChangeTo (new_exp (StartOf(Var v,NoOffset)))
    | Const(CWStr ws) ->
        let v =
          findOrAdd wstring_to_var ws
            (fun ws ->
               make_glob ~wstring:true (wstring_var ()) (List.length ws - 1)
                 (wstring_cabs_init ws))
        in
        ChangeTo (new_exp (StartOf(Var v,NoOffset)))
    | _ -> DoChildren