diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2023-08-22 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2023-08-22 00:00:00 +0000 |
| commit | 0383131f7f48c7ff65b982c4c07dd8a7e6d5ed5e (patch) | |
| tree | ffb8c7b0a53bfd20c9ed052b7e536a1c5426aa05 /compiler/rustc_passes/src/reachable.rs | |
| parent | 3e9e5745dfd3ad9a553a4c7d2b3d125dc1473fa6 (diff) | |
| download | rust-0383131f7f48c7ff65b982c4c07dd8a7e6d5ed5e.tar.gz rust-0383131f7f48c7ff65b982c4c07dd8a7e6d5ed5e.zip | |
Contents of reachable statics is reachable
Diffstat (limited to 'compiler/rustc_passes/src/reachable.rs')
| -rw-r--r-- | compiler/rustc_passes/src/reachable.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/compiler/rustc_passes/src/reachable.rs b/compiler/rustc_passes/src/reachable.rs index f9d34ea71ba..e62833b358b 100644 --- a/compiler/rustc_passes/src/reachable.rs +++ b/compiler/rustc_passes/src/reachable.rs @@ -98,15 +98,11 @@ impl<'tcx> Visitor<'tcx> for ReachableContext<'tcx> { self.worklist.push(def_id); } else { match res { - // If this path leads to a constant, then we need to - // recurse into the constant to continue finding - // items that are reachable. - Res::Def(DefKind::Const | DefKind::AssocConst, _) => { + // Reachable constants and reachable statics can have their contents inlined + // into other crates. Mark them as reachable and recurse into their body. + Res::Def(DefKind::Const | DefKind::AssocConst | DefKind::Static(_), _) => { self.worklist.push(def_id); } - - // If this wasn't a static, then the destination is - // surely reachable. _ => { self.reachable_symbols.insert(def_id); } |
