package mopsa

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Base storage of scalar values.

type base_kind =
  1. | Var of Mopsa.var
    (*

    Stack variable

    *)
  2. | Addr of Mopsa.addr
    (*

    Heap address

    *)
  3. | String of string * C_lang.Lang.Ast.c_character_kind * Mopsa.typ
    (*

    String literal, with character kind and type of character

    *)

Kinds of bases

type base = {
  1. base_kind : base_kind;
  2. base_valid : bool;
  3. base_invalidation_range : Mopsa.range option;
}

Bases

val pp_base_kind : Format.formatter -> base_kind -> unit
val pp_base : Format.formatter -> base -> unit
val compare_base_kind : base_kind -> base_kind -> int
val compare_base : base -> base -> int
val mk_base : ?valid:bool -> ?invalidation_range:Mopsa.range option -> base_kind -> base
val mk_var_base : ?valid:bool -> ?invalidation_range:Mopsa.range option -> Mopsa.var -> base
val mk_addr_base : ?valid:bool -> ?invalidation_range:Mopsa.range option -> Mopsa.addr -> base
val mk_string_base : ?kind:C_lang.Lang.Ast.c_character_kind -> ?typ:Mopsa.typ -> string -> base
val base_kind_uniq_name : base_kind -> string
val base_uniq_name : base -> string
val base_size : base -> 'a Mopsa.Flow.flow -> Z.t
val base_mode : base -> Mopsa.mode
type addr_opacity =
  1. | NotOpaque
  2. | OpaqueFrom of int
val addr_opaque_chain : (Mopsa.addr_kind -> addr_opacity) ref
val addr_opaque : Mopsa.addr_kind -> addr_opacity
val register_addr_opaque : ((Mopsa.addr_kind -> addr_opacity) -> Mopsa.addr_kind -> addr_opacity) -> unit
val is_base_readonly : base -> bool
val is_var_base_expr : Mopsa.expr -> bool
val is_addr_base_expr : Mopsa.expr -> bool
val is_base_expr : Mopsa.expr -> bool
val expr_to_base : Mopsa.expr -> base
val base_to_expr : base -> Mopsa_utils.Location.range -> Mopsa.expr
val eval_base_size : ?route:Mopsa.route -> base -> Mopsa_utils.Location.range -> ('a, 't) Mopsa.man -> 'a Core.Flow.flow -> 'a Core.Eval.eval

Evaluate the size of a base in bytes

module Base : sig ... end
module BaseSet : sig ... end
module BaseMap : sig ... end
OCaml

Innovation. Community. Security.