package mopsa

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

Module Value.PointerSet

include sig ... end
module Set : sig ... end
val bottom : t
val top : t
val is_top : t -> bool
val subset : t -> t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int
val join : t -> t -> t
val meet : t -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val widen : 'a Framework.Core.Context.ctx -> t -> t -> t
val print : Framework.Core.Print.printer -> t -> unit
val add : Set.elt -> t -> t
val fold : (PointerValue.t -> 'a -> 'a) -> t -> 'a -> 'a
val remove : PointerValue.t -> t -> t
val mem : PointerValue.t -> t -> bool
val filter : (Set.elt -> bool) -> t -> t
val partition : (Set.elt -> bool) -> t -> t * t
val exists : (Set.elt -> bool) -> t -> bool
val for_all : (Set.elt -> bool) -> t -> bool
val cardinal : t -> int
val find : Set.elt -> t -> PointerValue.t
val choose : t -> PointerValue.t
val singleton : PointerValue.t -> t
val is_empty : t -> bool
val empty : t
val is_bottom : t -> bool
val elements : t -> Set.elt list
val map : (PointerValue.t -> PointerValue.t) -> t -> t
val iter : (PointerValue.t -> unit) -> t -> unit
val apply : (Set.t -> 'a) -> 'a -> t -> 'a
val null : t

NULL address

val invalid : t

INVALID address

val base : Common.Base.base -> t

Base address

val cfun : Lang.Ast.c_fundec -> t

Function address

val is_valid : t -> bool

Check if the pointer *may* point to valid base addresses

val fold_points_to : (t -> Common.Points_to.points_to -> 'a -> 'a) -> t -> MopsaLib.expr -> 'a -> 'a

Fold over pointed objects

val mem_base : Common.Base.base -> t -> bool

Check if a base belongs to an abstract value

val add_base : Common.Base.base -> t -> t

Add a base to an abstract value

val remove_base : Common.Base.base -> t -> t

Remove a base from an abstract value

val rename_base : Common.Base.base -> Common.Base.base -> t -> t

Rename a base

val is_singleton : Set.t Mopsa_utils.Core.Top.with_top -> bool

Test if an abstract value is a singleton element

val singleton_diff : t -> t -> t

Compute the difference between an abstract value and a singleton

val filter_valid : t -> t

Filter valid pointers

val filter_non_valid : t -> t

Filter non-valid pointers

val there_are_valid_pointers : t -> bool

Returns true if there exist valid pointer values in a.

val there_are_non_valid_pointers : t -> bool

Returns true if there exist non-valid pointer values in a.