This is a fork of CDSChecker, a model checker for C11/C++11 which exhaustively explores the behaviors of code under the C/C++ memory model.
See https://plrg.ics.uci.edu/software_page/42-2/
git clone https://github.com/colesbury/c11-model-checker.git
make -j
Run, e.g. ./run.sh test/qsbr.o
./run.sh test/qsbr.o
A simplified model of QSBR.
./run.sh test/dict_value.o
Simulate dictionary updates.
./run.sh test/seqlock.o -m 10
Sequence locks. Used in updating type caches. Note that the test requires -m
(liveness) to avoid an infinite loop in _PySeqLock_BeginRead
. Larger values result in more executions. A value of -m 1
seems sufficient to catch interesting bugs, but I'm using -m 10
to be conservative.