Module Locations


module Locations: sig .. end
Memory locations.
Consult the Plugin Development Guide for additional details.

module Location_Bytes: sig .. end
Association between varids and offsets in byte.
module Location_Bits: sig .. end
Association between varids and offsets in bits.
module Zone: sig .. end
Association between varids and ranges of bits.

Locations



type location = private {
   loc : Location_Bits.t;
   size : Int_Base.t;
}
A Location_Bits.t and a size in bits.
Consult the Plugin Development Guide for additional details.
module Location: Datatype.S  with type t = location
val loc_bottom : location
val make_loc : Location_Bits.t -> Int_Base.t -> location
val loc_equal : location -> location -> bool
val loc_size : location -> Int_Base.t
val can_be_accessed : location -> bool
val is_valid : for_writing:bool -> location -> bool
val is_valid_or_function : location -> bool
val cardinal_zero_or_one : location -> bool
val valid_cardinal_zero_or_one : for_writing:bool -> location -> bool
val valid_part : for_writing:bool -> location -> location
val invalid_part : location -> location
val pretty : 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_without_size_to_loc : Cil_types.lval -> Location_Bytes.t -> location
val loc_bits_to_loc : Cil_types.lval -> Location_Bits.t -> location
val valid_enumerate_bits : for_writing:bool -> location -> Zone.t
Consult the Plugin Development Guide for additional details.
val zone_of_varinfo : Cil_types.varinfo -> Zone.t
Since Carbon-20101201
val size_of_varinfo : Cil_types.varinfo -> Abstract_interp.Int.t
val int_base_size_of_varinfo : Cil_types.varinfo -> Int_Base.t
val loc_of_varinfo : Cil_types.varinfo -> location
val loc_of_base : Base.t -> location
val loc_of_typoffset : Base.t -> Cil_types.typ -> Cil_types.offset -> location
val filter_loc : location -> Zone.t -> location