diff --git a/compiler/rustc_mir_transform/src/cross_crate_inline.rs b/compiler/rustc_mir_transform/src/cross_crate_inline.rs index df98c07f54958..9a0e4c432b43b 100644 --- a/compiler/rustc_mir_transform/src/cross_crate_inline.rs +++ b/compiler/rustc_mir_transform/src/cross_crate_inline.rs @@ -46,7 +46,9 @@ fn cross_crate_inlinable(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool { // #[inline(never)] to force code generation. match codegen_fn_attrs.inline { InlineAttr::Never => return false, - InlineAttr::Hint | InlineAttr::Always | InlineAttr::Force { .. } => return true, + // For -Copt-level=0, we won't inline functions anyways, so there's no reason to codegen them as LocalCopy. + InlineAttr::Hint if tcx.sess.opts.optimize != OptLevel::No => return true, + InlineAttr::Always | InlineAttr::Force { .. } => return true, _ => {} }