Skip to content
Snippets Groups Projects
Commit fc34351a authored by Julien Signoles's avatar Julien Signoles
Browse files

why tabulations?

parent 982ff459
No related branches found
No related tags found
No related merge requests found
...@@ -401,51 +401,51 @@ module rec Transfer ...@@ -401,51 +401,51 @@ module rec Transfer
in in
Dataflow.Post Dataflow.Post
(fun state -> (fun state ->
let state = Env.default_varinfos state in let state = Env.default_varinfos state in
let state = let state =
if (is_first || is_last) && Misc.is_generated_kf kf then if (is_first || is_last) && Misc.is_generated_kf kf then
Annotations.fold_behaviors Annotations.fold_behaviors
(fun _ bhv s -> (fun _ bhv s ->
let handle_annot test f s = let handle_annot test f s =
if test then if test then
f (fun _ p s -> register_predicate kf p s) kf bhv.b_name s f (fun _ p s -> register_predicate kf p s) kf bhv.b_name s
else else
s s
in in
let s = handle_annot is_first Annotations.fold_requires s in let s = handle_annot is_first Annotations.fold_requires s in
let s = handle_annot is_first Annotations.fold_assumes s in let s = handle_annot is_first Annotations.fold_assumes s in
handle_annot handle_annot
is_last is_last
(fun f -> Annotations.fold_ensures (fun e (_, p) -> f e p)) s) (fun f -> Annotations.fold_ensures (fun e (_, p) -> f e p)) s)
kf kf
state state
else else
state state
in in
let state = let state =
Annotations.fold_code_annot Annotations.fold_code_annot
(fun _ -> register_code_annot kf) stmt state (fun _ -> register_code_annot kf) stmt state
in in
let state = let state =
if stmt.ghost then if stmt.ghost then
let rtes = Rte.stmt kf stmt in let rtes = Rte.stmt kf stmt in
List.fold_left List.fold_left
(fun state a -> register_code_annot kf a state) state rtes (fun state a -> register_code_annot kf a state) state rtes
else else
state state
in in
let state = let state =
(* take initializers into account *) (* take initializers into account *)
if is_first then if is_first then
let main, lib = Globals.entry_point () in let main, lib = Globals.entry_point () in
if Kernel_function.equal kf main && not lib then if Kernel_function.equal kf main && not lib then
register_initializers state register_initializers state
else else
state state
else else
state state
in in
Some state) Some state)
(** The (backwards) transfer function for an instruction. The (** The (backwards) transfer function for an instruction. The
[(Cil.CurrentLoc.get ())] is set before calling this. If it returns [(Cil.CurrentLoc.get ())] is set before calling this. If it returns
......
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