package goblint

  1. Overview
  2. Docs
Static analysis framework for C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

goblint-2.8.0.tbz
sha256=9175eec0143102243964e34a0786584fd590c60422009259c705a89a27f88de4
sha512=9d760007dd8d003cf596516444ed7acc7370fc3d446e75ac71b0176522c3baae090410762f9035e7aae4f6b0e394bf28bb5b1c08ca0476920b94aa919ef04f42

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