Skip to content
Snippets Groups Projects
Commit 576d72cc authored by David Bühler's avatar David Bühler Committed by Andre Maroneze
Browse files

[From] Avoids re-running the analyses when loading a Frama-C save file.

parent 550fa231
No related branches found
No related tags found
No related merge requests found
...@@ -121,42 +121,43 @@ let main () = ...@@ -121,42 +121,43 @@ let main () =
typ_f typ_f
in in
if forcedeps then begin if forcedeps then begin
!Db.From.compute_all ();
From_parameters.ForceDeps.output From_parameters.ForceDeps.output
(fun () -> (fun () ->
!Db.From.compute_all ();
From_parameters.feedback "====== DEPENDENCIES COMPUTED ======@\n\ From_parameters.feedback "====== DEPENDENCIES COMPUTED ======@\n\
These dependencies hold at termination for the executions that terminate:"; These dependencies hold at termination for the executions that terminate:";
display None; display None;
From_parameters.feedback "====== END OF DEPENDENCIES ======" From_parameters.feedback "====== END OF DEPENDENCIES ======"
) )
end; end;
if forcecalldeps then !Db.From.compute_all_calldeps (); if forcecalldeps then
if not_quiet && forcecalldeps then begin
From_parameters.ForceCallDeps.output From_parameters.ForceCallDeps.output
(fun () -> (fun () ->
From_parameters.feedback "====== DISPLAYING CALLWISE DEPENDENCIES ======"; !Db.From.compute_all_calldeps ();
iter_callwise_calls_sorted if not_quiet then begin
(fun ki d -> From_parameters.feedback "====== DISPLAYING CALLWISE DEPENDENCIES ======";
let header, typ = iter_callwise_calls_sorted
match ki with (fun ki d ->
| Kglobal -> let header, typ =
(fun fmt -> Format.fprintf fmt "@[entry point:@]"), match ki with
Kernel_function.get_type (fst (Globals.entry_point ())) | Kglobal ->
| Kstmt ({skind = Instr (Call (_, ekf, _, _))} as s) -> (fun fmt -> Format.fprintf fmt "@[entry point:@]"),
treat_call s (Cil.typeOf ekf) Kernel_function.get_type (fst (Globals.entry_point ()))
| Kstmt ({skind = Instr (Local_init(_,ConsInit(f,_,_),_))} as s)-> | Kstmt ({skind = Instr (Call (_, ekf, _, _))} as s) ->
treat_call s f.vtype treat_call s (Cil.typeOf ekf)
| _ -> assert false (* Not a call *) | Kstmt ({skind = Instr (Local_init(_,ConsInit(f,_,_),_))} as s)->
in treat_call s f.vtype
From_parameters.printf ~header | _ -> assert false (* Not a call *)
"@[ %a@]" in
((if From_parameters.ShowIndirectDeps.get () From_parameters.printf ~header
then Function_Froms.pretty_with_type_indirect "@[ %a@]"
else Function_Froms.pretty_with_type) typ) ((if From_parameters.ShowIndirectDeps.get ()
d); then Function_Froms.pretty_with_type_indirect
From_parameters.feedback "====== END OF CALLWISE DEPENDENCIES ======"; else Function_Froms.pretty_with_type) typ)
d);
From_parameters.feedback "====== END OF CALLWISE DEPENDENCIES ======";
end
) )
end
let () = Db.Main.extend main let () = Db.Main.extend main
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment