let process_global_init wenv kf obj =
if WpStrategy.is_main_init kf then
List.fold_left
(fun obj global ->
match global with
| GVar (var, initinfo, loc) ->
if var.vstorage = Extern then obj
else
let old_loc = Cil.CurrentLoc.get () in
Cil.CurrentLoc.set loc ;
let obj =
match initinfo.init with
| None ->
W.init_value
wenv (Var var,NoOffset) var.vtype None obj
| Some init ->
let lv = Var var, NoOffset in
init_global_variable wenv lv init obj
in Cil.CurrentLoc.set old_loc ; obj
| _ -> obj
) obj (Ast.get()).globals
else
obj