package mopsa

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

Module Interproc.CommonSource

Common transfer functions for handling function calls

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

Option to limit recursion depth

Sourceval opt_rename_local_variables_on_recursive_call : bool Stdlib.ref

Trace markers

Sourcetype Mopsa.marker +=
  1. | M_return of Mopsa.range

Return flow token

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

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

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

    *)

Return variable

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

Sourcetype Mopsa.var_kind +=
  1. | V_return of Mopsa.expr

Return variable of a function call

Sourceval mk_return : Mopsa.expr -> Mopsa.var

Constructor of return variables

Contexts to keep return variable

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

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

Ignore recursion assumption

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

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

Recursion checks

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

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

Check that no recursion is happening

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

Function inlining

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

Initialize function parameters

Sourceval exec_fun_body : 'a -> Ast.Stmt.stmt -> Mopsa.var option -> 'b -> ('c, 'd) Mopsa.man -> 'c Mopsa.Flow.flow -> ('c, unit) Core.Cases.cases

Execute function body and save the return value

Inline a function call

OCaml

Innovation. Community. Security.