diff options
| author | Wesley Wiser <wwiser@gmail.com> | 2016-07-25 21:44:57 -0400 |
|---|---|---|
| committer | Wesley Wiser <wwiser@gmail.com> | 2016-07-27 13:58:22 -0400 |
| commit | 2dbf00e2bb60b6b3172002c7e00d516c94d9ee42 (patch) | |
| tree | 4a6c3643ea5237c3b0ed2ac8acd3f62dbf88876d | |
| parent | 422ebd5328e485462c675af9304f3b5b86e5b893 (diff) | |
| download | rust-2dbf00e2bb60b6b3172002c7e00d516c94d9ee42.tar.gz rust-2dbf00e2bb60b6b3172002c7e00d516c94d9ee42.zip | |
Only export #[no_mangle] extern symbols during LTO
Previously, all extern symbols were exported even when performing LTO. Now, we only export symbols that are also marked #[no_mangle]. Fixes #34985
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 409cec282bc..062bbc3be40 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -55,7 +55,6 @@ use rustc_serialize::Decodable; use syntax::attr; use syntax::parse::token; use syntax::ast; -use syntax::abi::Abi; use syntax::codemap; use syntax::print::pprust; use syntax::ptr::P; @@ -1542,13 +1541,9 @@ pub fn is_extern_item<'a, 'tcx>(cdata: Cmd, let applicable = match item_family(item_doc) { ImmStatic | MutStatic => true, Fn => { - let ty::TypeScheme { generics, ty } = get_type(cdata, id, tcx); + let ty::TypeScheme { generics, .. } = get_type(cdata, id, tcx); let no_generics = generics.types.is_empty(); - match ty.sty { - ty::TyFnDef(_, _, fn_ty) | ty::TyFnPtr(fn_ty) - if fn_ty.abi != Abi::Rust => return no_generics, - _ => no_generics, - } + no_generics }, _ => false, }; |
