From d141abfda7edb3db1613c0f9efd0b1382f5eeb84 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Tue, 7 Nov 2017 16:41:42 +0100 Subject: [PATCH] Always treat #[rustc_std_internal_symbol]s as root TransItems. --- src/librustc_trans_utils/collector.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/librustc_trans_utils/collector.rs b/src/librustc_trans_utils/collector.rs index 918c97774bccf..429471221c671 100644 --- a/src/librustc_trans_utils/collector.rs +++ b/src/librustc_trans_utils/collector.rs @@ -211,6 +211,8 @@ use trans_item::{TransItemExt, DefPathBasedNames, InstantiationMode}; use rustc_data_structures::bitvec::BitVector; +use syntax::attr; + #[derive(PartialEq, Eq, Hash, Clone, Copy, Debug)] pub enum TransItemCollectionMode { Eager, @@ -981,7 +983,9 @@ impl<'b, 'a, 'v> RootCollector<'b, 'a, 'v> { } TransItemCollectionMode::Lazy => { self.entry_fn == Some(def_id) || - self.tcx.is_exported_symbol(def_id) + self.tcx.is_exported_symbol(def_id) || + attr::contains_name(&self.tcx.get_attrs(def_id), + "rustc_std_internal_symbol") } } }