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.0.tar.gz
md5=9f673f79708b44a7effb3b6bb3618d2c
sha512=cb91cb428e43a22f1abbcb8219710d0c10a5b3756d0da392d4084b3b3a6157350776c596983e63def344f617d39964e91f244f60c07958695ee5c8c809a9f0f4

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_split_return_variables_by_range : bool Stdlib.ref
Sourceval opt_rename_local_variables_on_recursive_call : bool Stdlib.ref

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 * Mopsa.range option

Return variable of a function call

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

Constructor of return variables

Contexts to keep return variable

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

module ReturnKey : sig ... end
Sourceval return_key : ('a, Mopsa.expr) 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.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.