X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flinkage.rs;h=dc1e2107ce712d2cf51032434ddbbfe77316e3a6;hb=7d33e5bf3d3fa9750e84dccd6a3cb717630206f9;hp=23940c33f1feac97f2bc30b7aaf16d5deb8ac6bb;hpb=ca9fc101c00e33a0735a3bd2fa44eeeb7841422f;p=rust.git diff --git a/src/linkage.rs b/src/linkage.rs index 23940c33f1f..dc1e2107ce7 100644 --- a/src/linkage.rs +++ b/src/linkage.rs @@ -2,7 +2,11 @@ use crate::prelude::*; -pub(crate) fn get_clif_linkage(mono_item: MonoItem<'_>, linkage: RLinkage, visibility: Visibility) -> Linkage { +pub(crate) fn get_clif_linkage( + mono_item: MonoItem<'_>, + linkage: RLinkage, + visibility: Visibility, +) -> Linkage { match (linkage, visibility) { (RLinkage::External, Visibility::Default) => Linkage::Export, (RLinkage::Internal, Visibility::Default) => Linkage::Local, @@ -21,11 +25,9 @@ pub(crate) fn get_static_linkage(tcx: TyCtxt<'_>, def_id: DefId) -> Linkage { RLinkage::ExternalWeak | RLinkage::WeakAny => Linkage::Preemptible, _ => panic!("{:?}", linkage), } + } else if tcx.is_reachable_non_generic(def_id) { + Linkage::Export } else { - if tcx.is_reachable_non_generic(def_id) { - Linkage::Export - } else { - Linkage::Export // FIXME use Linkage::Hidden - } + Linkage::Hidden } }