package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Cil = GoblintCil

Library function descriptor (specification).

module Access : sig ... end

Pointer argument access specification.

type math =
  1. | Nan of Cil.fkind * Cil.exp
  2. | Inf of Cil.fkind
  3. | Isfinite of Cil.exp
  4. | Isinf of Cil.exp
  5. | Isnan of Cil.exp
  6. | Isnormal of Cil.exp
  7. | Signbit of Cil.exp
  8. | Fabs of Cil.fkind * Cil.exp
  9. | Acos of Cil.fkind * Cil.exp
  10. | Asin of Cil.fkind * Cil.exp
  11. | Atan of Cil.fkind * Cil.exp
  12. | Atan2 of Cil.fkind * Cil.exp * Cil.exp
  13. | Cos of Cil.fkind * Cil.exp
  14. | Sin of Cil.fkind * Cil.exp
  15. | Tan of Cil.fkind * Cil.exp
type special =
  1. | Malloc of Cil.exp
  2. | Calloc of {
    1. count : Cil.exp;
    2. size : Cil.exp;
    }
  3. | Realloc of {
    1. ptr : Cil.exp;
    2. size : Cil.exp;
    }
  4. | Assert of {
    1. exp : Cil.exp;
    2. check : bool;
    3. refine : bool;
    }
  5. | Lock of {
    1. lock : Cil.exp;
    2. try_ : bool;
    3. write : bool;
    4. return_on_success : bool;
    }
  6. | Unlock of Cil.exp
  7. | ThreadCreate of {
    1. thread : Cil.exp;
    2. start_routine : Cil.exp;
    3. arg : Cil.exp;
    }
  8. | ThreadJoin of {
    1. thread : Cil.exp;
    2. ret_var : Cil.exp;
    }
  9. | ThreadExit of {
    1. ret_val : Cil.exp;
    }
  10. | Math of {
    1. fun_args : math;
    }
  11. | Memset of {
    1. dest : Cil.exp;
    2. ch : Cil.exp;
    3. count : Cil.exp;
    }
  12. | Bzero of {
    1. dest : Cil.exp;
    2. count : Cil.exp;
    }
  13. | Abort
  14. | Unknown
    (*

    Anything not belonging to other types.

    *)

Type of special function, or Unknown.

module Accesses : sig ... end

Pointer arguments access specification.

type attr =
  1. | ThreadUnsafe
    (*

    Function is not thread-safe to call, e.g. due to its own internal (global) state.

    *)
  2. | InvalidateGlobals
    (*

    Function invalidates all globals when called.

    *)

Function attribute.

type t = {
  1. special : Cil.exp list -> special;
    (*

    Conversion to special using arguments.

    *)
  2. accs : Accesses.t;
    (*

    Pointer arguments access specification.

    *)
  3. attrs : attr list;
    (*

    Attributes of function.

    *)
}

Library function descriptor.

val special_of_old : (Cil.exp list -> [< `Calloc of Cil.exp * Cil.exp | `Lock of bool * bool * bool | `Malloc of Cil.exp | `Realloc of Cil.exp * Cil.exp | `ThreadCreate of Cil.exp * Cil.exp * Cil.exp | `ThreadJoin of Cil.exp * Cil.exp | `Unknown of 'a | `Unlock ]) -> Cil.exp list -> special
val of_old : ?attrs:attr list -> Accesses.old -> (Cil.exp list -> [< `Calloc of Cil.exp * Cil.exp | `Lock of bool * bool * bool | `Malloc of Cil.exp | `Realloc of Cil.exp * Cil.exp | `ThreadCreate of Cil.exp * Cil.exp * Cil.exp | `ThreadJoin of Cil.exp * Cil.exp | `Unknown of 'a | `Unlock ]) -> t