package goblint

  1. Overview
  2. Docs
Static analysis framework for C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

goblint-2.7.1.tbz
sha256=af01aac256229f33a90a9fcbfed04b01e3097f154d4d124f006476d6387c6a66
sha512=2a93bfe16881adbc2d8dcbfe38c1e19cd24ca105d8e1eda13d02440f3002874ffe2957dfd937510765233a054a40568b0052db92e31d382a5bd215d1ec12565c

doc/goblint.lib/Goblint_lib/EvalAssert/index.html

Module Goblint_lib.EvalAssert

Transformation for instrumenting the program with computed invariants as assertions (assert).

Instruments a program by inserting asserts either:

  • After an assignment to a variable (unless witness.invariant.full is activated) and
  • At join points about all local variables

OR

  • Only after pthread_mutex_lock (witness.invariant.after-lock), about all locals and globals

Limitations without witness.invariant.after-lock:

  • Currently only works for top-level variables (not inside an array, a struct, ...)
  • Does not work for accesses through pointers
  • At join points asserts all locals, but ideally should only assert ones that are modified in one of the branches

Limitations in general:

  • Removes comments, so if the original program had //UNKNOWN assertions, the annotation will be removed and they will fail on the next iteration
module EvalAssert : sig ... end