Frama-C:
Plug-ins:
Libraries:

Frama-C API - Simpler_domains

Simplified interfaces for abstract domains. Complete abstract domains can be built from these interfaces through the functors in Domain_builder. More documentation can be found on the complete interface of abstract domains, in Abstract_domain.

type simple_argument = {
  1. formal : Frama_c_kernel.Cil_types.varinfo;
  2. concrete : Eval.exp;
}

Both the formal argument of a called function and the concrete argument at a call site.

type simple_call = {
  1. kf : Frama_c_kernel.Cil_types.kernel_function;
  2. arguments : simple_argument list;
  3. rest : Eval.exp list;
  4. return : Frama_c_kernel.Cil_types.varinfo option;
}

Simple information about a function call.

module type Minimal = sig ... end

Simplest interface for an abstract domain. No exchange of information with the other abstractions of Eva.

module type Minimal_with_datatype = sig ... end

The simplest interface of domains, equipped with a frama-c datatype.

A simpler functional interface for valuations.

module type Simple_Cvalue = sig ... end

A simple interface allowing the abstract domain to use the value and location abstractions computed by the other domains. Only the Cvalue.V and the the Precise_locs abstractions are available in this interface, on the transfer functions for assignment, assumption and at the call sites. On the other hand, the abstract domain cannot assist the computation of these value and location abstractions. The communication is thus unidirectional, from other domains to these simpler domains.