Module AnalysisState

Global flags for analysis state.

val should_warn : bool Stdlib.ref

If this is true we output messages and collect accesses. This is set to true in control.ml before we verify the result (or already before solving if warn = 'early')

val executing_speculative_computations : bool Stdlib.ref

If this is true, any overflows happening in IntDomains will not lead to warnings being produced or svcomp_may_overflow being set to true. This is useful when, e.g., BaseInvariant.Make.invariant executes computations that are not in the actual program

val svcomp_may_overflow : bool Stdlib.ref

Whether signed overflow or underflow happened

val svcomp_may_not_terminate : bool Stdlib.ref

Whether the termination analysis detects the program as non-terminating

Whether an invalid free happened

val svcomp_may_invalid_free : bool Stdlib.ref

Whether an invalid free happened

val svcomp_may_invalid_deref : bool Stdlib.ref

Whether an invalid pointer dereference happened

val svcomp_may_invalid_memtrack : bool Stdlib.ref

Whether a memory leak occurred and there's no reference to the leaked memory

val svcomp_may_invalid_memcleanup : bool Stdlib.ref

Whether a memory leak occurred

val global_initialization : bool Stdlib.ref

A hack to see if we are currently doing global inits

val postsolving : bool Stdlib.ref

Whether currently in postsolver evaluations (e.g. verify, warn)

val verified : bool option Stdlib.ref
val unsound_both_branches_dead : bool option Stdlib.ref

Some true if unsound both branches dead occurs in analysis results. Some false if it doesn't occur. None if ana.dead-code.branches option is disabled and this isn't checked.