LibraryFunctionsThis allows us to query information about library functions.
type categories = [ | `Malloc of Prelude.Ana.exp| `Calloc of Prelude.Ana.exp * Prelude.Ana.exp| `Realloc of Prelude.Ana.exp * Prelude.Ana.exp| `Assert of Prelude.Ana.exp| `Lock of bool * bool * bool| `Unlock| `ThreadCreate of Prelude.Ana.exp * Prelude.Ana.exp * Prelude.Ana.exp| `ThreadJoin of Prelude.Ana.exp * Prelude.Ana.exp| `Unknown of string ]Categories of special functions
val classify : string -> Prelude.Ana.exp list -> categoriesSpecifies what is known about an argument.
val get_invalidate_action :
string ->
(action -> Prelude.Ana.exp list -> Prelude.Ana.exp list) optionReturns None if nothing is known about given function. * Otherwise will return function that filters out arguments * that may be read or also written to.
val get_threadsafe_inv_ac :
string ->
(action -> Prelude.Ana.exp list -> Prelude.Ana.exp list) optionSame as get_invalidate_action, but replaces arguments for thread-safe functions.
val add_effects :
(string -> Cil.exp list -> (Cil.lval * ValueDomain.Compound.t) list option) ->
unitval effects_for :
string ->
Cil.exp list ->
(Cil.lval * ValueDomain.Compound.t) list listThis is for when we need to use special transfer function on functions calls that have definitions.
val osek_renames : bool Prelude.Ana.ref