Skip to content

Commit 2dbf00e

Browse files
committed
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
1 parent 422ebd5 commit 2dbf00e

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

src/librustc_metadata/decoder.rs

+2-7
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ use rustc_serialize::Decodable;
5555
use syntax::attr;
5656
use syntax::parse::token;
5757
use syntax::ast;
58-
use syntax::abi::Abi;
5958
use syntax::codemap;
6059
use syntax::print::pprust;
6160
use syntax::ptr::P;
@@ -1542,13 +1541,9 @@ pub fn is_extern_item<'a, 'tcx>(cdata: Cmd,
15421541
let applicable = match item_family(item_doc) {
15431542
ImmStatic | MutStatic => true,
15441543
Fn => {
1545-
let ty::TypeScheme { generics, ty } = get_type(cdata, id, tcx);
1544+
let ty::TypeScheme { generics, .. } = get_type(cdata, id, tcx);
15461545
let no_generics = generics.types.is_empty();
1547-
match ty.sty {
1548-
ty::TyFnDef(_, _, fn_ty) | ty::TyFnPtr(fn_ty)
1549-
if fn_ty.abi != Abi::Rust => return no_generics,
1550-
_ => no_generics,
1551-
}
1546+
no_generics
15521547
},
15531548
_ => false,
15541549
};

0 commit comments

Comments
 (0)