package frama-c

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

Module RegionSource

Interface for the Region plug-in.

Each function is assigned a region map. Areas in the map represents l-values or, more generally, class of nodes. Regions are classes equivalences of nodes that represents a collection of addresses (at some program point).

Regions can be subdivided into sub-regions. Hence, given two regions, either one is included into the other, or they are separated. Hence, given two l-values, if their associated regions are separated, then they can not be aliased.

Nodes are elementary elements of a region map. Variables maps to nodes, and one can move to one node to another by struct or union field or array element. Two disting nodes might belong to the same region. However, it is possible to normalize nodes and obtain a unique identifier for all nodes in a region.

Sourcetype map
Sourcetype node
Sourceval get_id : map -> node -> int
Sourceval get_node : map -> int -> node
Sourceval node : map -> node -> node

Normalize node

Sourceval nodes : map -> node list -> node list

Normalize set of nodes

Sourceval equal : map -> node -> node -> bool

Nodes are in the same region

Sourceval included : map -> node -> node -> bool

First belongs to last

Sourceval separated : map -> node -> node -> bool

Nodes can not be aliased

Sourceval points_to : map -> node -> node option
Sourceval pointed_by : map -> node -> node list
Sourceval parents : map -> node -> node list
Sourceval iter : map -> (node -> unit) -> unit

Iter over all regions

OCaml

Innovation. Community. Security.