diff options
| author | Nathan Corbyn <me@nathancorbyn.com> | 2020-06-05 16:47:37 +0100 |
|---|---|---|
| committer | Nathan Corbyn <me@nathancorbyn.com> | 2020-06-15 09:40:56 +0100 |
| commit | f62903b74a8630fa62e721f69e6621d1d441e7f1 (patch) | |
| tree | a054cf5352766f8084835cc3f9326a316f83cd96 /src/librustc_codegen_ssa | |
| parent | ce6d3a73b514e9649e57cee812ad129bb2112016 (diff) | |
Export `#[inline] #[no_mangle]` fns in cdylibs and staticlibs
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/back/symbol_export.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/librustc_codegen_ssa/back/symbol_export.rs b/src/librustc_codegen_ssa/back/symbol_export.rs index 970d13b30c0..bf8693f3547 100644 --- a/src/librustc_codegen_ssa/back/symbol_export.rs +++ b/src/librustc_codegen_ssa/back/symbol_export.rs @@ -89,10 +89,11 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, cnum: CrateNum) -> DefIdMap< | Node::ImplItem(&hir::ImplItem { kind: hir::ImplItemKind::Fn(..), .. }) => { let def_id = tcx.hir().local_def_id(hir_id); let generics = tcx.generics_of(def_id); - if !generics.requires_monomorphization(tcx) && - // Functions marked with #[inline] are only ever codegened - // with "internal" linkage and are never exported. - !Instance::mono(tcx, def_id.to_def_id()).def.generates_cgu_internal_copy(tcx) + if !generics.requires_monomorphization(tcx) + && (!Instance::mono(tcx, def_id.to_def_id()) + .def + .generates_cgu_internal_copy(tcx) + || tcx.inline_exportable(def_id.to_def_id())) { Some(def_id) } else { |
