method vglob_aux g = match g with
    | GFun (f, _) ->
        debug "add function %s@." f.svar.vname;
        Hashtbl.add used_variables f.svar ();
        Cil.DoChildren
    | GAnnot _ -> Cil.DoChildren
    | GVar (v, init, _) ->
        let _ = match init.init with | None -> ()
          | Some init ->
              begin
                Hashtbl.add var_init v init;
                if Hashtbl.mem used_variables v then
                  (* already used before its initialization (see bug #758) *)
                  ignore (visitCilInit (self:>Cil.cilVisitor) v NoOffset init)
              end
        in Cil.SkipChildren
    | GVarDecl(_,v,_) when isFunctionType v.vtype -> DoChildren
    | _ -> Cil.SkipChildren