diff options
| author | Rich Kadel <richkadel@google.com> | 2020-12-14 00:25:29 -0800 |
|---|---|---|
| committer | Rich Kadel <richkadel@google.com> | 2020-12-14 12:55:46 -0800 |
| commit | 4f550f1f930b9201bbeeb9fa10d42392a66cc9f2 (patch) | |
| tree | da2913fa47cb8ec9ee48b10c190284fba50b7e89 /compiler/rustc_metadata/src/rmeta | |
| parent | eb963ffe451bfbc001ea86712a94619903bfbaf8 (diff) | |
| download | rust-4f550f1f930b9201bbeeb9fa10d42392a66cc9f2.tar.gz rust-4f550f1f930b9201bbeeb9fa10d42392a66cc9f2.zip | |
Improve warnings on incompatible options involving -Zinstrument-coverage
Adds checks for: * `no_core` attribute * explicitly-enabled `legacy` symbol mangling * mir_opt_level > 1 (which enables inlining) I removed code from the `Inline` MIR pass that forcibly disabled inlining if `-Zinstrument-coverage` was set. The default `mir_opt_level` does not enable inlining anyway. But if the level is explicitly set and is greater than 1, I issue a warning. The new warnings show up in tests, which is much better for diagnosing potential option conflicts in these cases.
Diffstat (limited to 'compiler/rustc_metadata/src/rmeta')
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index 46dd0df65e0..b0c75c1de9d 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -663,7 +663,12 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> { no_builtins: tcx.sess.contains_name(&attrs, sym::no_builtins), panic_runtime: tcx.sess.contains_name(&attrs, sym::panic_runtime), profiler_runtime: tcx.sess.contains_name(&attrs, sym::profiler_runtime), - symbol_mangling_version: tcx.sess.opts.debugging_opts.symbol_mangling_version, + symbol_mangling_version: tcx + .sess + .opts + .debugging_opts + .symbol_mangling_version + .unwrap_or(SymbolManglingVersion::default()), crate_deps, dylib_dependency_formats, |
