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,
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
}
}