diff options
| author | Stuart Cook <Zalathar@users.noreply.github.com> | 2025-08-08 12:52:54 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-08 12:52:54 +1000 |
| commit | 562222b73765a326fa800a075814deaf627874df (patch) | |
| tree | 194b44c53c8854e040f09f4a2f280d19df5376a6 /src | |
| parent | 2edfd3636117db8f57cc49c3a0b786c6245b0617 (diff) | |
| parent | 81ed042c8cc4a1bd677c9209cf9edca6b91af04a (diff) | |
| download | rust-562222b73765a326fa800a075814deaf627874df.tar.gz rust-562222b73765a326fa800a075814deaf627874df.zip | |
Rollup merge of #144999 - Zalathar:remove-mcdc, r=oli-obk
coverage: Remove all unstable support for MC/DC instrumentation Preliminary support for a partial implementation of “Modified Condition/Decision Coverage” instrumentation was added behind the unstable flag `-Zcoverage-options=mcdc` in 2024. These are the most substantial PRs involved: - rust-lang/rust#123409 - rust-lang/rust#126733 At the time, I accepted these PRs with relatively modest scrutiny, because I did not want to stand in the way of independent work on MC/DC instrumentation. My hope was that ongoing work by interested contributors would lead to the code becoming clearer and more maintainable over time. --- However, that MC/DC code has proven itself to be a major burden on overall maintenance of coverage instrumentation, and a major obstacle to other planned improvements, such as internal changes needed for proper support of macro expansion regions. I have also become reluctant to accept any further MC/DC-related changes that would increase this burden. That tension has resulted in an unhappy impasse. On one hand, the present MC/DC implementation is not yet complete, and shows little sign of being complete at an acceptable level of code quality in the foreseeable future. On the other hand, the continued existence of this partial MC/DC implementation is imposing serious maintenance burdens on every other aspect of coverage instrumentation, and is preventing some of the very improvements that would make it easier to accept expanded MC/DC support in the future. While I know this will be disappointing to some, I think the healthy way forward is accept that I made the wrong call in accepting the current implementation, and to remove it entirely from the compiler.
Diffstat (limited to 'src')
| -rw-r--r-- | src/doc/unstable-book/src/compiler-flags/coverage-options.md | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/doc/unstable-book/src/compiler-flags/coverage-options.md b/src/doc/unstable-book/src/compiler-flags/coverage-options.md index 87a9a00b3c0..693a0a58b49 100644 --- a/src/doc/unstable-book/src/compiler-flags/coverage-options.md +++ b/src/doc/unstable-book/src/compiler-flags/coverage-options.md @@ -5,7 +5,7 @@ This option controls details of the coverage instrumentation performed by Multiple options can be passed, separated by commas. Valid options are: -- `block`, `branch`, `condition`, `mcdc`: +- `block`, `branch`, `condition`: Sets the level of coverage instrumentation. Setting the level will override any previously-specified level. - `block` (default): @@ -15,6 +15,3 @@ Multiple options can be passed, separated by commas. Valid options are: - `condition`: In addition to branch coverage, also instruments some boolean expressions as branches, even if they are not directly used as branch conditions. - - `mcdc`: - In addition to condition coverage, also enables MC/DC instrumentation. - (Branch coverage instrumentation may differ in some cases.) |
