package frama-c
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
TTristan Le Gall
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=0220bc743b7da2468ceb926f331edc7ddfaa7c603ba47962de3e33c8e1e3f593
doc/frama-c.kernel/Frama_c_kernel/Dataflow2/Backwards/argument-1-_/index.html
Parameter Backwards._
The type of the data we compute for each block start. In many presentations of backwards data flow analysis we maintain the data at the block end. This is not easy to do with JVML because a block has many exceptional ends. So we maintain the data for the statement start.
val pretty : Format.formatter -> t -> unit
Pretty-print the state
val funcExitData : t
The data at function exit. Used for statements with no successors. This is usually bottom, since we'll also use doStmt on Return statements.
val combineStmtStartData : Cil_types.stmt -> old:t -> t -> t option
When the analysis reaches the start of a block, combine the old data with the one we have just computed. Return None if the combination is the same as the old data, otherwise return the combination. In the latter case, the predecessors of the statement are put on the working list.
val doStmt : Cil_types.stmt -> t action
The (backwards) transfer function for a branch. The (Cil.CurrentLoc.get ())
is set before calling this. If it returns None, then we have some default handling. Otherwise, the returned data is the data before the branch (not considering the exception handlers)
val doInstr : Cil_types.stmt -> Cil_types.instr -> t -> t action
The (backwards) transfer function for an instruction. The (Cil.CurrentLoc.get ())
is set before calling this. If it returns None, then we have some default handling. Otherwise, the returned data is the data before the branch (not considering the exception handlers)
val filterStmt : Cil_types.stmt -> Cil_types.stmt -> bool
Whether to put this predecessor block in the worklist. We give the predecessor and the block whose predecessor we are (and whose data has changed)
module StmtStartData : StmtStartData with type data = t
For each block id, the data at the start. This data structure must be initialized with the initial data for each block