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/Dataflows/Simple_backward/argument-2-P/index.html
Parameter Simple_backward.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 : Format.formatter -> t -> unit
Display the contents of an element of the lattice.
val transfer_stmt : Cil_types.stmt -> t -> t
transfer_stmt s state
must implement the transfer function for s
.
val init : (Cil_types.stmt * t) list
The initial state after each statement. Statements in this list are given the associated value, and are added to the worklist. Other statements are initialized to bottom.
To get results for an entire function, this list should contain information for the following statements:
- the final statement of the function (
Kernel_function.find_return
) - all the statements with no successors
- at least one statement per non-terminating loop