Early return from inject_profiler_runtime

This commit is contained in:
Alan Egerton 2021-06-17 12:11:40 +01:00
parent 93c636211c
commit 872839eb49
No known key found for this signature in database
GPG Key ID: 68A65BCD9D289FFE

View File

@ -769,32 +769,32 @@ impl<'a> CrateLoader<'a> {
} }
fn inject_profiler_runtime(&mut self, krate: &ast::Crate) { fn inject_profiler_runtime(&mut self, krate: &ast::Crate) {
if self.sess.instrument_coverage() let profiler_runtime = &self.sess.opts.debugging_opts.profiler_runtime;
|| self.sess.opts.debugging_opts.profile
|| self.sess.opts.cg.profile_generate.enabled() if !(profiler_runtime.is_some()
&& (self.sess.instrument_coverage()
|| self.sess.opts.debugging_opts.profile
|| self.sess.opts.cg.profile_generate.enabled()))
{ {
if let Some(name) = return;
self.sess.opts.debugging_opts.profiler_runtime.as_deref().map(Symbol::intern) }
{
info!("loading profiler");
if name == sym::profiler_builtins info!("loading profiler");
&& self.sess.contains_name(&krate.attrs, sym::no_core)
{
self.sess.err(
"`profiler_builtins` crate (required by compiler options) \
is not compatible with crate attribute `#![no_core]`",
);
}
let cnum = self.resolve_crate(name, DUMMY_SP, CrateDepKind::Implicit, None); let name = Symbol::intern(profiler_runtime.as_ref().unwrap());
let data = self.cstore.get_crate_data(cnum); if name == sym::profiler_builtins && self.sess.contains_name(&krate.attrs, sym::no_core) {
self.sess.err(
"`profiler_builtins` crate (required by compiler options) \
is not compatible with crate attribute `#![no_core]`",
);
}
// Sanity check the loaded crate to ensure it is indeed a profiler runtime let cnum = self.resolve_crate(name, DUMMY_SP, CrateDepKind::Implicit, None);
if !data.is_profiler_runtime() { let data = self.cstore.get_crate_data(cnum);
self.sess.err(&format!("the crate `{}` is not a profiler runtime", name));
} // Sanity check the loaded crate to ensure it is indeed a profiler runtime
} if !data.is_profiler_runtime() {
self.sess.err(&format!("the crate `{}` is not a profiler runtime", name));
} }
} }