let initFile f =
file:=f ;
Data_for_aorai.setCData ();
(* Adding C variables into our hashtable *)
Globals.Vars.iter (fun vi _ -> set_varinfo vi.vname vi);
Globals.Functions.iter(fun kf ->
let fname = Kernel_function.get_name kf in
List.iter
(fun vi ->
set_paraminfo fname vi.vname vi)
(Kernel_function.get_formals kf);
if not (Data_for_aorai.isIgnoredFunction fname) then
begin
let fund = (Kernel_function.get_definition kf) in
let bodys = fund.sbody.bstmts in
let ret = List.hd (List.rev bodys) in
match ret.skind with
| Return (Some e,_) ->
let en = e.enode in
begin
match en with
| Lval (Var vi,NoOffset) -> set_returninfo fname vi (* Add the vi of return stmt *)
| _ -> ()(* function without returned value *)
end
| _ -> () (* function without returned value *)
end
)