package mopsa

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

Module Common.Base

Base storage of scalar values.

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

    Stack variable

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

    Heap address

    *)
  3. | String of string * Lang.Ast.c_character_kind * MopsaLib.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 : MopsaLib.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:MopsaLib.range option -> base_kind -> base
val mk_var_base : ?valid:bool -> ?invalidation_range:MopsaLib.range option -> MopsaLib.var -> base
val mk_addr_base : ?valid:bool -> ?invalidation_range:MopsaLib.range option -> MopsaLib.addr -> base
val mk_string_base : ?kind:Lang.Ast.c_character_kind -> ?typ:MopsaLib.typ -> string -> base
val base_kind_uniq_name : base_kind -> string
val base_uniq_name : base -> string
val base_size : base -> 'a Mopsa_analyzer.MopsaLib.Flow.flow -> Z.t
val base_mode : base -> MopsaLib.mode
type addr_opacity =
  1. | NotOpaque
  2. | OpaqueFrom of int
val addr_opaque_chain : (MopsaLib.addr_kind -> addr_opacity) ref
val addr_opaque : MopsaLib.addr_kind -> addr_opacity
val register_addr_opaque : ((MopsaLib.addr_kind -> addr_opacity) -> MopsaLib.addr_kind -> addr_opacity) -> unit
val is_base_readonly : base -> bool
val is_var_base_expr : MopsaLib.expr -> bool
val is_addr_base_expr : MopsaLib.expr -> bool
val is_base_expr : MopsaLib.expr -> bool
val expr_to_base : MopsaLib.expr -> base

Evaluate the size of a base in bytes

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

Innovation. Community. Security.