class visit_propagating_pre_post_constraints_bycase : 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
Associates each labeled statement to a pre-condition
Associates each labeled statement to a post-condition
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.
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.
Pre or post condition of each loop key stmt, and for FWD and BWD AI
Propagates pre-condition to each statement, by following control flow.
It returns a couple of bool array, defining the strongest
post-condition of the statement list.
This function returns the current 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 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 spec of the given statement.
WARNING !
Side effects of this function :
The pre of the current stmt is updated according to the given pre
Body of propagates_post (after list.rev)
method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction