Modified Condition and Decision Coverage in Gcc: Intro, Motivation & Tooling
summary
Modified condition/decision coverage (MCDC) is added as a GCC feature via a patch of ~1000 lines of code (about one third comments) that emits condition-level data into gcno/gcda files and augments gcov reports with per-condition indices and which conditions failed independent-effect checks. It implements masking MCDC (fewer tests than unique-cause, roughly O(sqrt(n)) vs n+1), detects short‑circuit masking, works with multiple front ends including the experimental Rust front end, and is pending review but buildable from source so users can test it now.
AI-written summary · about
chapters (9)
- 0:00MCDC in GCC
- 2:13Code coverage purpose
- 4:44Line, branch, condition coverage
- 16:51Why MCDC matters
- 29:42GCC MCDC implementation
- 41:13MCDC in Rust and others
- 51:50GCC MCDC detection algorithm
- 1:19:00Masking detection algorithm
- 1:22:47Q&A
related talks
59mTheory makes beautiful programs
58mCoverage, quality, and Goodhart's Law
19mTesting Your Tests With Code Coverage
44mCan I stop testing now? (...)
01h 40mTesting, Preconditions, Coverage and Templates in Safety-Critical C++ Code
40mAdvanced Test Coverage Criteria: Specify and Measure, Cover and Unmask
33mData-Dependent Confidentiality in DCR Graphs
36mSpecification-Guided Component-Based Synthesis from Effectful Libraries
