package goblint

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

Library function descriptor (specification).

module Cil = GoblintCil

Pointer argument access specification.

module Access : sig ... end

Pointer argument access specification.

val equal_math : math -> math -> Ppx_deriving_runtime.bool
val compare_math : math -> math -> Ppx_deriving_runtime.int
val hash_math : math -> int
type special =
  1. | Malloc of Cil.Cil.exp
  2. | Calloc of {
    1. count : Cil.Cil.exp;
    2. size : Cil.Cil.exp;
    }
  3. | Realloc of {
    1. ptr : Cil.Cil.exp;
    2. size : Cil.Cil.exp;
    }
  4. | Free of Cil.Cil.exp
  5. | Assert of {
    1. exp : Cil.Cil.exp;
    2. check : bool;
    3. refine : bool;
    }
  6. | Lock of {
    1. lock : Cil.Cil.exp;
    2. try_ : bool;
    3. write : bool;
    4. return_on_success : bool;
    }
  7. | Unlock of Cil.Cil.exp
  8. | ThreadCreate of {
    1. thread : Cil.Cil.exp;
    2. start_routine : Cil.Cil.exp;
    3. arg : Cil.Cil.exp;
    }
  9. | ThreadJoin of {
    1. thread : Cil.Cil.exp;
    2. ret_var : Cil.Cil.exp;
    }
  10. | ThreadExit of {
    1. ret_val : Cil.Cil.exp;
    }
  11. | Signal of Cil.Cil.exp
  12. | Broadcast of Cil.Cil.exp
  13. | MutexAttrSetType of {
    1. attr : Cil.Cil.exp;
    2. typ : Cil.Cil.exp;
    }
  14. | MutexInit of {
    1. mutex : Cil.Cil.exp;
    2. attr : Cil.Cil.exp;
    }
  15. | Wait of {
    1. cond : Cil.Cil.exp;
    2. mutex : Cil.Cil.exp;
    }
  16. | TimedWait of {
    1. cond : Cil.Cil.exp;
    2. mutex : Cil.Cil.exp;
    3. abstime : Cil.Cil.exp;
      (*

      Unused

      *)
    }
  17. | Math of {
    1. fun_args : math;
    }
  18. | Memset of {
    1. dest : Cil.Cil.exp;
    2. ch : Cil.Cil.exp;
    3. count : Cil.Cil.exp;
    }
  19. | Bzero of {
    1. dest : Cil.Cil.exp;
    2. count : Cil.Cil.exp;
    }
  20. | Memcpy of {
    1. dest : Cil.Cil.exp;
    2. src : Cil.Cil.exp;
    }
  21. | Strcpy of {
    1. dest : Cil.Cil.exp;
    2. src : Cil.Cil.exp;
    3. n : Cil.Cil.exp option;
    }
  22. | Strcat of {
    1. dest : Cil.Cil.exp;
    2. src : Cil.Cil.exp;
    3. n : Cil.Cil.exp option;
    }
  23. | Strlen of Cil.Cil.exp
  24. | Strstr of {
    1. haystack : Cil.Cil.exp;
    2. needle : Cil.Cil.exp;
    }
  25. | Strcmp of {
    1. s1 : Cil.Cil.exp;
    2. s2 : Cil.Cil.exp;
    3. n : Cil.Cil.exp option;
    }
  26. | Abort
  27. | Identity of Cil.Cil.exp
    (*

    Identity function. Some compiler optimization annotation functions map to this.

    *)
  28. | Setjmp of {
    1. env : Cil.Cil.exp;
    }
  29. | Longjmp of {
    1. env : Cil.Cil.exp;
    2. value : Cil.Cil.exp;
    }
  30. | Rand
  31. | 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.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.Cil.exp list -> [< `Calloc of Cil.Cil.exp * Cil.Cil.exp | `Lock of bool * bool * bool | `Malloc of Cil.Cil.exp | `Realloc of Cil.Cil.exp * Cil.Cil.exp | `ThreadCreate of Cil.Cil.exp * Cil.Cil.exp * Cil.Cil.exp | `ThreadJoin of Cil.Cil.exp * Cil.Cil.exp | `Unknown of 'a | `Unlock ]) -> Cil.Cil.exp list -> special
val of_old : ?attrs:attr list -> Accesses.old -> (Cil.Cil.exp list -> [< `Calloc of Cil.Cil.exp * Cil.Cil.exp | `Lock of bool * bool * bool | `Malloc of Cil.Cil.exp | `Realloc of Cil.Cil.exp * Cil.Cil.exp | `ThreadCreate of Cil.Cil.exp * Cil.Cil.exp * Cil.Cil.exp | `ThreadJoin of Cil.Cil.exp * Cil.Cil.exp | `Unknown of 'a | `Unlock ]) -> t
module MathPrintable : sig ... end
module MathLifted : sig ... end
OCaml

Innovation. Community. Security.