package frama-c
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
SSylvain Chiron
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
BBenjamin Jorge
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
KKilyan Le Gallic
-
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
-
CCécile Ruet-Cros
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=a94384f00d53791cbb4b4d83ab41607bc71962d42461f02d71116c4ff6dca567
doc/frama-c.kernel/Frama_c_kernel/Dataflows/Simple_forward/argument-2-P/index.html
Parameter Simple_forward.P
include JOIN_SEMILATTICE
val bottom : t
Must verify that forall a, join a bottom = a.
Must verify: a is_included b <=> a join b = b. The dataflow does not require this function.
This function is used by the dataflow algorithm to determine if something has to be recomputed. Joining and inclusion testing are similar operations, so it is often more efficient to do both at the same time (e.g. when joining with bottom).
Instead of defining it directly, it can be defined from join and equal, or from is_included, for instance by if is_included new old then (true,old) else (false, join old new)
or let j = join old new in (equal j new, j)
.
val pretty : Stdlib.Format.formatter -> t -> unit
Display the contents of an element of the lattice.
val transfer_stmt : Cil_types.stmt -> t -> (Cil_types.stmt * t) list
transfer_stmt s state
must returns a list of pairs in which the first element is a statement s'
in s.succs
, and the second element a value that will be joined with the current result for before s'
.
Note that it is allowed that not all succs are present in the list returned by transfer_stmt
(in which case, the successor is assumed to be unreachable in the current state), or that succs are present several times (this is useful to handle switches).
Helper functions are provided for If
and Switch
statements. See transfer_if_from_guard
and transfer_switch_from_guard
below.
val init : (Cil_types.stmt * t) list
The initial value for each statement. Statements in this list are given the associated value, and are added to the worklist. Other statements are initialized to bottom.
Unless you want to do something very specific, supplying only the state for the first statement of the function (as found by Kernel_function.find_first_stmt
) is sufficient.