about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2025-01-04 11:41:51 +0100
committerRalf Jung <post@ralfj.de>2025-01-04 11:41:51 +0100
commit3cd3649c6cd370ac20e47f40bd5f210c9fe63f92 (patch)
tree699d6f81a303789007d9efa24d485f1c3bd3f0b5 /compiler/rustc_mir_transform
parentbe65012aa34aa3b8d27e0e372b9eb86743d5aa8f (diff)
downloadrust-3cd3649c6cd370ac20e47f40bd5f210c9fe63f92.tar.gz
rust-3cd3649c6cd370ac20e47f40bd5f210c9fe63f92.zip
rustc_intrinsic: support functions without body; they are implicitly marked as must-be-overridden
Diffstat (limited to 'compiler/rustc_mir_transform')
-rw-r--r--compiler/rustc_mir_transform/src/inline.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/inline.rs b/compiler/rustc_mir_transform/src/inline.rs
index 35699acb318..339acbad6b9 100644
--- a/compiler/rustc_mir_transform/src/inline.rs
+++ b/compiler/rustc_mir_transform/src/inline.rs
@@ -190,7 +190,8 @@ impl<'tcx> Inliner<'tcx> {
 
         // Intrinsic fallback bodies are automatically made cross-crate inlineable,
         // but at this stage we don't know whether codegen knows the intrinsic,
-        // so just conservatively don't inline it.
+        // so just conservatively don't inline it. This also ensures that we do not
+        // accidentally inline the body of an intrinsic that *must* be overridden.
         if self.tcx.has_attr(callsite.callee.def_id(), sym::rustc_intrinsic) {
             return Err("Callee is an intrinsic, do not inline fallback bodies");
         }