Require -Zunstable-options
for -C instrument-coverage=except-*
options
These options primarily exist to work around bugs, and those bugs have largely been fixed. Avoid stabilizing them, so that we don't have to support them indefinitely.
This commit is contained in:
parent
e14bd48476
commit
6593fcd824
4 changed files with 15 additions and 8 deletions
|
@ -135,8 +135,8 @@ pub enum MirSpanview {
|
|||
/// selected, code structure, and enabled attributes. If errors are encountered,
|
||||
/// either while compiling or when generating `llvm-cov show` reports, consider
|
||||
/// lowering the optimization level, including or excluding `-C link-dead-code`,
|
||||
/// or using `-C instrument-coverage=except-unused-functions` or `-C
|
||||
/// instrument-coverage=except-unused-generics`.
|
||||
/// or using `-Zunstable-options -C instrument-coverage=except-unused-functions`
|
||||
/// or `-Zunstable-options -C instrument-coverage=except-unused-generics`.
|
||||
///
|
||||
/// Note that `ExceptUnusedFunctions` means: When `mapgen.rs` generates the
|
||||
/// coverage map, it will not attempt to generate synthetic functions for unused
|
||||
|
@ -150,9 +150,9 @@ pub enum MirSpanview {
|
|||
pub enum InstrumentCoverage {
|
||||
/// Default `-C instrument-coverage` or `-C instrument-coverage=statement`
|
||||
All,
|
||||
/// `-C instrument-coverage=except-unused-generics`
|
||||
/// `-Zunstable-options -C instrument-coverage=except-unused-generics`
|
||||
ExceptUnusedGenerics,
|
||||
/// `-C instrument-coverage=except-unused-functions`
|
||||
/// `-Zunstable-options -C instrument-coverage=except-unused-functions`
|
||||
ExceptUnusedFunctions,
|
||||
/// `-C instrument-coverage=off` (or `no`, etc.)
|
||||
Off,
|
||||
|
@ -2154,6 +2154,13 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options {
|
|||
and `-Z instrument-coverage`",
|
||||
);
|
||||
}
|
||||
(Some(InstrumentCoverage::Off | InstrumentCoverage::All), _) => {}
|
||||
(Some(_), _) if !debugging_opts.unstable_options => {
|
||||
early_error(
|
||||
error_format,
|
||||
"`-C instrument-coverage=except-*` requires `-Z unstable-options`",
|
||||
);
|
||||
}
|
||||
(None, None) => {}
|
||||
(None, ic) => {
|
||||
early_warn(
|
||||
|
|
|
@ -318,9 +318,9 @@ $ llvm-cov report \
|
|||
## `-C instrument-coverage=<options>`
|
||||
|
||||
- `-C instrument-coverage=all`: Instrument all functions, including unused functions and unused generics. (This is the same as `-C instrument-coverage`, with no value.)
|
||||
- `-C instrument-coverage=except-unused-generics`: Instrument all functions except unused generics.
|
||||
- `-C instrument-coverage=except-unused-functions`: Instrument only used (called) functions and instantiated generic functions.
|
||||
- `-C instrument-coverage=off`: Do not instrument any functions. (This is the same as simply not including the `-C instrument-coverage` option.)
|
||||
- `-Zunstable-options -C instrument-coverage=except-unused-generics`: Instrument all functions except unused generics.
|
||||
- `-Zunstable-options -C instrument-coverage=except-unused-functions`: Instrument only used (called) functions and instantiated generic functions.
|
||||
|
||||
## Other references
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
78| |// generic functions with:
|
||||
79| |//
|
||||
80| |// ```shell
|
||||
81| |// $ `rustc -C instrument-coverage=except-unused-generics ...`
|
||||
81| |// $ `rustc -Zunstable-options -C instrument-coverage=except-unused-generics ...`
|
||||
82| |// ```
|
||||
83| |//
|
||||
84| |// Even though this function is used by `uses_crate.rs` (and
|
||||
|
|
|
@ -78,7 +78,7 @@ fn use_this_lib_crate() {
|
|||
// generic functions with:
|
||||
//
|
||||
// ```shell
|
||||
// $ `rustc -C instrument-coverage=except-unused-generics ...`
|
||||
// $ `rustc -Zunstable-options -C instrument-coverage=except-unused-generics ...`
|
||||
// ```
|
||||
//
|
||||
// Even though this function is used by `uses_crate.rs` (and
|
||||
|
|
Loading…
Add table
Reference in a new issue