class visit_propagating_pre_post_constraints_bycase : Promelaast.buchautomata ->
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.
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.
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 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 storing 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 storing 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