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-region.core/Region/index.html
Module Region
Source
Interface for the Region plug-in
Each function is assigned a region map. Areas in the map represents l-values or, more generally, class of nodes. Regions are classes equivalences of nodes that represents a collection of addresses (at some program point).
Regions can be subdivided into sub-regions. Hence, given two regions, either one is included into the other, or they are separated. Hence, given two l-values, if their associated regions are separated, then they can not be aliased.
Nodes are elementary elements of a region map. Variables maps to nodes, and one can move to one node to another by struct or union field or array element. Two disting nodes might belong to the same region. However, it is possible to normalize nodes and obtain a unique identifier for all nodes in a region.
Memory Maps and Nodes
Not normalized. Two nodes in the same equivalence class may have different identifiers.
Unique id of normalized node. This can be considered the unique identifier of the region equivalence class.
Normalized node. The returned node is the representative of the region equivalence class. There is one unique representative per equivalence class.
Normalized list of nodes (normalized, uniques, sorted by id)
Region Properties
All functions in this section provide normalized nodes and shall never raise exception.
Full-sized cells with unique type access
Alias Analysis
equal m a b
checks if nodes a
and b
are in the same region.
include m a b
checks if region a
is a sub-region of b
in map m
.
separated m a b
checks if region a
and region b
are disjoint. Disjoints regions a
and b
have the following properties:
a
is not a sub-region ofb
;b
is not a sub-region ofa
;- two l-values respectively localized in
a
andb
can never be aliased.
singleton m a
returns true
when node a
is guaranteed to have only one single address in its equivalence class.
lval m lv
is region where the address of l
lives in. The returned region is normalized.
exp m e
is the domain of values that can computed by expression e
. The domain is Some r
is e
has a pointer type and any pointer computed by e
lives in region r
. The domain is None
if e
has a non-pointer scalar or compound type.
Low-level Navigation through Memory Maps
For optimized access, all the fonctions in this section return unnormalized nodes and may raise Not_found
for not localized routes.
Unormalized.
Unormalized.
Unormalized.