package mopsa

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mopsa-analyzer-v1.2.tar.gz
md5=37966e98ffeebcedc09bd6e9b2b81f69
sha512=40d4d826c25f680766c07eccbabdf5e8a4fa023016e8a164e4e4f6b3781c8484dc4df437055721dfd19b9db8fb7fe3b61236c4833186d346fc7204a68d01eaaa

doc/mopsa.mopsa_analyzer/Mopsa_analyzer/Languages/Universal/Iterators/Interproc/Common/index.html

Module Interproc.Common

Common transfer functions for handling function calls

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

Option to limit recursion depth

val opt_rename_local_variables_on_recursive_call : bool ref

Trace markers

type MopsaLib.marker +=
  1. | M_return of MopsaLib.range

Return flow token

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

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

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

    *)

Return variable

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

Return variable of a function call

Constructor of return variables

Contexts to keep return variable

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

module ReturnKey : sig ... end
val return_key : ('a, MopsaLib.var) Mopsa_analyzer__Framework__Core__Context.ctx_key

Ignore recursion assumption

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

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

Recursion checks

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

val check_recursion : string -> string -> Mopsa_utils.Core.Location.range -> MopsaLib.callsite list -> bool

Check that no recursion is happening

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

Function inlining

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

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

Execute function body and save the return value

OCaml

Innovation. Community. Security.