package mopsa

  1. Overview
  2. Docs
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation

Install

Dune Dependency

Authors

Maintainers

Sources

mopsa-analyzer-v1.1.tar.gz
md5=fdee20e988343751de440b4f6b67c0f4
sha512=f5cbf1328785d3f5ce40155dada2d95e5de5cce4f084ea30cfb04d1ab10cc9403a26cfb3fa55d0f9da72244482130fdb89c286a9aed0d640bba46b7c00e09500

doc/universal_interproc/Universal_interproc/Interproc/Common/index.html

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.