package frama-c
Install
    
    dune-project
 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/Lmap_bitwise/Make_bitwise/LOffset/index.html
Module Make_bitwise.LOffset
type v = vType of the values stored in the offsetmap
Datatype for the offsetmap
include Datatype.S
include Datatype.S_no_copy
val packed_descr : Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val mem_project : (Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
type intervals = Int_Intervals.tPretty-printing
val pretty : t Pretty_utils.formatterval pretty_generic : 
  ?typ:Cil_types.typ ->
  ?pretty_v:(Format.formatter -> v -> unit) ->
  ?skip_v:(v -> bool) ->
  ?sep:string ->
  unit ->
  Format.formatter ->
  t ->
  unitval pretty_debug : t Pretty_utils.formatterJoin and inclusion testing
Finding values
val find : Int_Intervals_sig.itv -> t -> vval find_iset : validity:Base.validity -> intervals -> t -> vAdding values
val add_binding_intervals : 
  validity:Base.validity ->
  exact:bool ->
  intervals ->
  v ->
  t ->
  t Lattice_bounds.or_bottomval add_binding_ival : 
  validity:Base.validity ->
  exact:bool ->
  Ival.t ->
  size:Int_Base.t ->
  v ->
  t ->
  t Lattice_bounds.or_bottomCreating an offsetmap
val empty : toffsetmap containing no interval.
val size_from_validity : Base.validity -> Integer.t Lattice_bounds.or_bottomsize_from_validity v returns the size to be used when creating a new offsetmap for a base with validity v. This is a convention that should be shared by all modules that create offsetmaps. Returns `Bottom iff v is Invalid.
Iterators
type map2_decide = - | ReturnLeft
- | ReturnRight
- | ReturnConstant of v
- | Recurse(*- See the documentation of type *)- Offsetmap_sig.map2_decide
val map2 : 
  Hptmap_sig.cache_type ->
  (t -> t -> map2_decide) ->
  (v -> v -> v) ->
  t ->
  t ->
  tSee the documentation of function Offsetmap_sig.map2_on_values.
Same behavior as fold, except if two disjoint intervals r1 and r2 are mapped to the same value and boolean. In this case, fold will call its argument f on r1, then on r2. fold_fuse_same will call it directly on r1 U r2, where U is the join on sets of intervals.
val fold_itv : 
  ?direction:[ `LTR | `RTL ] ->
  entire:bool ->
  (Int_Intervals_sig.itv -> v -> 'a -> 'a) ->
  Int_Intervals_sig.itv ->
  t ->
  'a ->
  'aSee documentation of Offsetmap_sig.fold_between.
val fold_join_itvs : 
  cache:Hptmap_sig.cache_type ->
  (Integer.t -> Integer.t -> v -> 'a) ->
  ('a -> 'a -> 'a) ->
  'a ->
  intervals ->
  t ->
  'afold_join f join vempty itvs m is an implementation of fold that restricts itself to the intervals in itvs. Unlike in fold (where the equivalent of f operates on an accumulator), f returns a value on each sub-interval independently. The results are joined using joined. vempty is the value that must be returned on Int_Intervals.bottom. This function uses a cache internally. Hence, it must be partially applied to its first three arguments. If you do not need a cache, use fold instead.
Shape
val is_single_interval : t -> boolis_single_interval o is true if the offsetmap o contains a single binding.
single_interval_value o returns Some v if o contains a single interval, to which v is bound, and None otherwise.
is_same_value o v is true if the offsetmap o contains a single binding to v, or is the empty offsetmap.