Domains.Memory_sig
module type Value = sig ... end
A scalar value stored inside a memory region. Should be a subset of Domain.Minimal + With_Binary.
module type With_Offset = sig ... end
Abstraction of an offset in a contiguous memory region.
module type Offset = sig ... end
A true domain dealing with offsets.
module type With_Address = sig ... end
Abstraction of an address, pointing to a region in a C-like memory model. The type adress is named binary for historical reasons, and also to help sharing with bitvectors in whole.
module type Address = sig ... end
module type With_Fixed_Size_Value = sig ... end
A fixed-size value is the type of values returned by C expressions or held in machine code registers, i.e. it is a bitvector containing an integer, pointer, floating point value, or contenation or extraction of other fixed-size values.
module type Fixed_size_value_domain = sig ... end
An abstract domain handling fixed-size values.
module type Memory_Queries = sig ... end
module type Region = sig ... end
module type Memory = sig ... end
Memory map adresses to values. These types may differ (for instance, an array functor can takes integer as adresses, but can contain any value).
module type Value_to_offset = sig ... end
module type Value_to_address = sig ... end
module type Address_to_Scalar = sig ... end
module type Offset_to_Scalar = sig ... end
module type Offset_Memory_domain = sig ... end
module type Memory_domain = sig ... end
module type Whole_Memory_domain = sig ... end
Like a Memory_domain
, but we can do bitvector operations on addresses.