package goblint-cil

  1. Overview
  2. Docs
val debug : bool Stdlib.ref

Print extra debugging info

val debug_constraints : bool Stdlib.ref

Debug constraints (print all constraints)

val debug_aliases : bool Stdlib.ref

Debug smart alias queries

val debug_may_aliases : bool Stdlib.ref

Debug may alias queries

val smart_aliases : bool Stdlib.ref
val print_constraints : bool Stdlib.ref

Print out the top level constraints

val analyze_mono : bool Stdlib.ref

Make the analysis monomorphic

val no_sub : bool Stdlib.ref

Disable subtyping

val no_flow : bool Stdlib.ref

Make the flow step a no-op

val show_progress : bool Stdlib.ref

Show the progress of the flow step

val conservative_undefineds : bool Stdlib.ref

Treat undefined functions conservatively

val callHasNoSideEffects : (GoblintCil.Cil.exp -> bool) Stdlib.ref

client can specify particular external functions that have no side effects

val analyze_file : GoblintCil.Cil.file -> unit

Analyze a file

val print_types : unit -> unit

Print the type of each lvalue in the program

exception UnknownLocation

If undefined functions are analyzed conservatively, any of the high-level queries may raise this exception

val may_alias : GoblintCil.Cil.exp -> GoblintCil.Cil.exp -> bool
val resolve_lval : GoblintCil.Cil.lval -> GoblintCil.Cil.varinfo list
val resolve_exp : GoblintCil.Cil.exp -> GoblintCil.Cil.varinfo list
val resolve_funptr : GoblintCil.Cil.exp -> GoblintCil.Cil.fundec list
type absloc

type for abstract locations

val absloc_of_varinfo : GoblintCil.Cil.varinfo -> absloc

Give an abstract location for a varinfo

val absloc_of_lval : GoblintCil.Cil.lval -> absloc

Give an abstract location for an Cil lvalue

val absloc_eq : absloc -> absloc -> bool

may the two abstract locations be aliased?

val absloc_e_points_to : GoblintCil.Cil.exp -> absloc list
val absloc_e_transitive_points_to : GoblintCil.Cil.exp -> absloc list
val absloc_lval_aliases : GoblintCil.Cil.lval -> absloc list
val d_absloc : unit -> absloc -> GoblintCil.Pretty.doc

Print a string representing an absloc, for debugging.

val compute_results : bool -> unit

Compute points to sets for variables. If true is passed, print the sets.

val compute_aliases : bool -> unit
val feature : GoblintCil.Feature.t