class visit_propagating_pre_post_constraints : Promelaast.typed_automaton ->
object
.. end
This visitor requires that each function has a specification. It then
computes a finer specification by forward and backard abstract interpretation
on states.
This vistor use mainly 2 sub-functions (propagates_pre and propagates_post)
that implement respectively forward and backward treatment.
Inherits
Associates each statement of the fonction to a pre/post specification
During the pre-condition propagation, it represents the set of
statements that need second computation of specification. For instance,
it can occurs when the statement is pointed by a goto instruction.
This variable contains the result of the pre-condition propagation.
Set of observed labeled statement. This information is used for goto
treatment.
True if and only if the computation has to be done again in oreder to
compute a fix-point result.
Name of the current function.
Propagates pre-condition to each statement, by following control flow.
It returns a couple af bool array, definig the strongest post-condition of the statement list.
This function returns the curent pre of a statement or an empty
pre if no specification exists
This function makes an OR filter between the given pre and
the old pre of the given stmt. The result is stored as the new
pre of the given stmt.
This function returns the current pre of the given statement.
WARNING !
Side effects of this function :
If the statement is in stmts_to_compute_one_more_time then it is removed
The pre of the current stmt is updated according to the current pre_st and pre_tr
Propagates post-condition to each statement, by following control flow.
It returns a couple of bool array, definig the weakest pre-condition of the statement list.
Since then analysis is a backward one, the list is first reversed.
This function returns the current spec of a statement or an empty
spec if no specification exists
This function makes an AND filter between the given post and the old post of the given stmt
The result is storing as the new post of the given stmt.
This function makes an OR filter between the given post and
the old post of the given stmt
The result is storing as the new post of the given stmt.
This function returns the current spec of the given statement.
WARNING !
Side effects of this function :
The post of the current stmt is updated according
to the given post_st and post_tr
Body of propagates_post (after list.rev)
method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction