diff options
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/base.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/base.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/base.rs b/compiler/rustc_codegen_llvm/src/base.rs index 893c909b204..b296db64ee9 100644 --- a/compiler/rustc_codegen_llvm/src/base.rs +++ b/compiler/rustc_codegen_llvm/src/base.rs @@ -218,3 +218,27 @@ pub fn visibility_to_llvm(linkage: Visibility) -> llvm::Visibility { Visibility::Protected => llvm::Visibility::Protected, } } + +pub fn linkage_from_llvm(linkage: llvm::Linkage) -> Linkage { + match linkage { + llvm::Linkage::ExternalLinkage => Linkage::External, + llvm::Linkage::AvailableExternallyLinkage => Linkage::AvailableExternally, + llvm::Linkage::LinkOnceAnyLinkage => Linkage::LinkOnceAny, + llvm::Linkage::LinkOnceODRLinkage => Linkage::LinkOnceODR, + llvm::Linkage::WeakAnyLinkage => Linkage::WeakAny, + llvm::Linkage::WeakODRLinkage => Linkage::WeakODR, + llvm::Linkage::AppendingLinkage => Linkage::Appending, + llvm::Linkage::InternalLinkage => Linkage::Internal, + llvm::Linkage::PrivateLinkage => Linkage::Private, + llvm::Linkage::ExternalWeakLinkage => Linkage::ExternalWeak, + llvm::Linkage::CommonLinkage => Linkage::Common, + } +} + +pub fn visibility_from_llvm(linkage: llvm::Visibility) -> Visibility { + match linkage { + llvm::Visibility::Default => Visibility::Default, + llvm::Visibility::Hidden => Visibility::Hidden, + llvm::Visibility::Protected => Visibility::Protected, + } +} |
