package mopsa

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

Common transfer functions for handling function calls

val name : string
val debug : ('a, Stdlib.Format.formatter, unit, unit) Stdlib.format4 -> 'a
val opt_recursion_limit : int Stdlib.ref

Option to limit recursion depth

val opt_split_return_variables_by_range : bool Stdlib.ref
val opt_rename_local_variables_on_recursive_call : bool Stdlib.ref

Return flow token

=====================

type Mopsa.token +=
  1. | T_return of Mopsa.range
    (*

    T_return(l) represents flows reaching a return statement at location l

    *)

Return variable

===================

type Mopsa.var_kind +=
  1. | V_return of Mopsa.expr * Mopsa.range option

Return variable of a function call

val mk_return : Mopsa.expr -> Mopsa.range option -> Mopsa.var

Constructor of return variables

Contexts to keep return variable

===================================

module ReturnKey : sig ... end
val return_key : ('a, Mopsa.expr) Core__Context.ctx_key
val get_last_call_site : 'a Mopsa.Flow.flow -> Utils_core.Location.range

Ignore recursion assumption

===============================

type Mopsa.assumption_kind +=
  1. | A_ignore_recursion_side_effect of string

Recursion checks

====================

val check_recursion : string -> string -> Utils_core.Location.range -> Mopsa.callsite list -> bool

Check that no recursion is happening

val check_nested_calls : string -> Mopsa.callsite list -> bool

Function inlining

=====================

val init_fun_params : Lang.Ast.fundec -> Ast.Expr.expr list -> Mopsa_utils.Location.range -> ('a, 'b) Mopsa.man -> 'a Mopsa.Flow.flow -> Mopsa.var list * Mopsa.var list * Mopsa.stmt * 'a Mopsa.Post.post

Initialize function parameters

val exec_fun_body : 'a -> Ast.Var.var list -> Ast.Var.var list -> Ast.Stmt.stmt -> Mopsa.expr option -> Mopsa_utils.Location.range -> ('b, 'c) Mopsa.man -> 'b Mopsa.Flow.flow -> ('b, Ast.Expr.expr) Core.Cases.cases

Execute function body and save the return value

Inline a function call

OCaml

Innovation. Community. Security.