Corpus
scripts/corpus.py runs the tool over real C projects
(scripts/corpus/projects.json), one file at a time or whole-program
("whole_program": true), and compares diagnostic counts with
scripts/corpus/baseline.json; see scripts/corpus/README.md. It is the
empirical check on the RFCs’ precision claims and runs weekly in CI.
RFC 0014 also pins a smaller subset for both release pull-request jobs.
The fixed evaluation suite (scripts/evaluate.py, test/evaluation/) is
separate from corpus counts and recall regression pins. It retains known
misses in its denominator and rejects parse errors, crashes, timeouts and
unexpected diagnostics. Both it and its harness unit tests run under CTest.
RFC 0013 also keeps a must-fact for objects allocated within the current function. Cleanup below those objects does not become consumption of entry fields merely because the object was published through an interface path. Copies and record copies preserve the fact; unknown non-null alternatives drop it at joins. Scalar guard snapshots carry scalar/null facts; RFC 0014 also preserves pointer predicates through input identities. Pointer-value snapshots retain the required reachable state.