about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/inline
diff options
context:
space:
mode:
authorlcnr <rust@lcnr.de>2022-07-20 14:32:58 +0200
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-03-27 12:16:54 +0000
commit0c13565ca66d25d15ee9146919dd74e57cdfda89 (patch)
treeb0a7561ac7421c0df2e6daa3a047cf3dfb107627 /compiler/rustc_mir_transform/src/inline
parent7a0600714ab1a4cb2d1a88cd0660b9f9a2c07309 (diff)
downloadrust-0c13565ca66d25d15ee9146919dd74e57cdfda89.tar.gz
rust-0c13565ca66d25d15ee9146919dd74e57cdfda89.zip
Add a builtin `FnPtr` trait
Diffstat (limited to 'compiler/rustc_mir_transform/src/inline')
-rw-r--r--compiler/rustc_mir_transform/src/inline/cycle.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/src/inline/cycle.rs b/compiler/rustc_mir_transform/src/inline/cycle.rs
index 792457c80b0..faf404c7771 100644
--- a/compiler/rustc_mir_transform/src/inline/cycle.rs
+++ b/compiler/rustc_mir_transform/src/inline/cycle.rs
@@ -84,6 +84,9 @@ pub(crate) fn mir_callgraph_reachable<'tcx>(
                 | InstanceDef::FnPtrShim(..)
                 | InstanceDef::ClosureOnceShim { .. }
                 | InstanceDef::CloneShim(..) => {}
+
+                // This shim does not call any other functions, thus there can be no recursion.
+                InstanceDef::FnPtrAddrShim(..) => continue,
                 InstanceDef::DropGlue(..) => {
                     // FIXME: A not fully substituted drop shim can cause ICEs if one attempts to
                     // have its MIR built. Likely oli-obk just screwed up the `ParamEnv`s, so this