Frama-C:
Plug-ins:
Libraries:

Frama-C API - Vars

Globals variables. The AST should be computed before using this module (cf. Ast.compute).

Getters

val find_from_astinfo : string -> Cil_types.syntactic_scope -> Cil_types.varinfo

Finds a variable from its vname according to its localisation (which might be a local). If you wish to search for a symbol according to its original name in the source code and the syntactic scope in which it should appear, use Globals.Syntactic_search instead.

  • raises Not_found

    if no such variable exists.

val get_astinfo : Cil_types.varinfo -> string * Cil_types.syntactic_scope

Linear in the number of locals and formals of the program.

Iterators

val iter : (Cil_types.varinfo -> Cil_types.initinfo -> unit) -> unit
val fold : (Cil_types.varinfo -> Cil_types.initinfo -> 'a -> 'a) -> 'a -> 'a
val iter_in_file_order : (Cil_types.varinfo -> Cil_types.initinfo -> unit) -> unit

The next four iterators iter on all global variables present in the AST, following the order in which they are declared/defined. The only exception is for variables that are both declared and defined. In this case, the declarations are skipped altogether.

val fold_in_file_order : (Cil_types.varinfo -> Cil_types.initinfo -> 'a -> 'a) -> 'a -> 'a
  • since Fluorine-20130401
val iter_in_file_rev_order : (Cil_types.varinfo -> Cil_types.initinfo -> unit) -> unit
  • since Neon-20140301
val fold_in_file_rev_order : (Cil_types.varinfo -> Cil_types.initinfo -> 'a -> 'a) -> 'a -> 'a
  • since Neon-20140301

Setters

Functions of this section should not be called by casual users.

exception AlreadyExists of Cil_types.varinfo * Cil_types.initinfo
val remove : Cil_types.varinfo -> unit

Removes the given varinfo, which must have already been removed from the AST. Warning: this is very dangerous.

  • since 18.0-Argon
val add_decl : Cil_types.varinfo -> unit
val self : State.t