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
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
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=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/frama-c.kernel/Frama_c_kernel/Locations/index.html
Module Frama_c_kernel.Locations
Memory locations.
module Location_Bytes : sig ... end
Association between bases and offsets in byte.
module Location_Bits : module type of Location_Bytes
Association between bases and offsets in bits.
module Zone : sig ... end
Association between bases and ranges of bits.
Locations
A Location_Bits.t
and a size in bits.
module Location : Datatype.S with type t = location
val loc_top : location
val loc_bottom : location
val is_bottom_loc : location -> bool
val make_loc : Location_Bits.t -> Int_Base.t -> location
val loc_size : location -> Int_Base.t
val base_access : size:Int_Base.t -> access -> Base.access
Conversion into a base access, with the size information. Accesses of unknown sizes are converted into empty accesses.
Is the given location entirely valid, without any access or as a destination for a read or write access.
Overapproximation of the valid part of the given location. Beware that is_valid (valid_part loc)
does not necessarily hold, as garbled mix may not be reduced by valid_part
. bitfield
indicates whether the location may be the one of a bitfield, and is true by default. If it is set to false, the location is assumed to be byte aligned, and its offset (expressed in bits) is reduced to be congruent to 0 modulo 8.
val cardinal_zero_or_one : location -> bool
Is the location bottom or a singleton?
val valid_cardinal_zero_or_one : for_writing:bool -> location -> bool
Is the valid part of the location bottom or a singleton?
Is there a possibly non-empty intersection between two given locations? If partial
is true, returns true if the two locations may be overlapping without being equal. If partial
is false, also returns true if the two locations may be equal. Returns false when the two locations cannot be overlapping.
val pretty : Format.formatter -> location -> unit
val pretty_english : prefix:bool -> Format.formatter -> location -> unit
Conversion functions
val loc_to_loc_without_size : location -> Location_Bytes.t
val loc_bytes_to_loc_bits : Location_Bytes.t -> Location_Bits.t
val loc_bits_to_loc_bytes : Location_Bits.t -> Location_Bytes.t
val loc_bits_to_loc_bytes_under : Location_Bits.t -> Location_Bytes.t
val zone_of_varinfo : Cil_types.varinfo -> Zone.t
val loc_of_varinfo : Cil_types.varinfo -> location
val loc_of_typoffset : Base.t -> Cil_types.typ -> Cil_types.offset -> location