let filter_if stmt (th, el as thel) =
if th = Dataflow.GUnreachable || el = Dataflow.GUnreachable
then thel
else
let sep = !mask in
if sep <> 0 &&
( Value_parameters.SeparateStmtStart.is_empty() ||
(Value_parameters.SeparateStmtStart.exists
(fun s -> stmt.Cil_types.sid = int_of_string s)) )
then begin
mask := sep lsr 1;
let c =
(Value_parameters.SeparateStmtWord.get()) land sep <> 0
in
Value_parameters.warning ~current:true
"Statement %d: only propagating for condition %B"
stmt.Cil_types.sid
c;
if c
then
th, Dataflow.GUnreachable
else
Dataflow.GUnreachable, el
end
else thel