method vglob_aux =
let retype_func fvi =
let formal (n,ty,a) =
let ty = if isStructOrUnionType ty then mkTRef ty else ty in
n, ty, a
in
let rt,params,isva,a = splitFunctionTypeVI fvi in
let params = match params with
| None -> None
| Some p -> Some(List.map formal p)
in
let rt = if isStructOrUnionType rt then mkTRef rt else rt in
fvi.vtype <- TFun(rt,params,isva,a)
in
function
| GVarDecl(_spec,v,_attr) ->
if isFunctionType v.vtype && not v.vdefined then retype_func v;
DoChildren
| GFun _
| GAnnot _ -> DoChildren
| GVar _ | GCompTag _ | GType _ | GCompTagDecl _ | GEnumTagDecl _
| GEnumTag _ | GAsm _ | GPragma _ | GText _ -> SkipChildren