summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/declare.rs
diff options
context:
space:
mode:
authorDan Gohman <dev@sunfishcode.online>2022-09-28 14:50:58 -0700
committerDan Gohman <dev@sunfishcode.online>2022-09-28 14:50:58 -0700
commit297c908fee73206bc00276df80326582dad0168f (patch)
tree13554678bbe8dccad8d6e097fdcd1608ed7c51db /compiler/rustc_codegen_llvm/src/declare.rs
parentbc5443a603efd83c0eacaac0bf5383280c81a6eb (diff)
downloadrust-297c908fee73206bc00276df80326582dad0168f.tar.gz
rust-297c908fee73206bc00276df80326582dad0168f.zip
Change `declare_cfn` to use the C visibility for all C ABI functions.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/declare.rs')
-rw-r--r--compiler/rustc_codegen_llvm/src/declare.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_llvm/src/declare.rs b/compiler/rustc_codegen_llvm/src/declare.rs
index 3fbc803d5c3..f79ef11720d 100644
--- a/compiler/rustc_codegen_llvm/src/declare.rs
+++ b/compiler/rustc_codegen_llvm/src/declare.rs
@@ -78,9 +78,15 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
         &self,
         name: &str,
         unnamed: llvm::UnnamedAddr,
-        visibility: llvm::Visibility,
         fn_type: &'ll Type,
     ) -> &'ll Value {
+        // Declare C ABI functions with the visibility used by C by default.
+        let visibility = if self.tcx.sess.target.default_hidden_visibility {
+            llvm::Visibility::Hidden
+        } else {
+            llvm::Visibility::Default
+        };
+
         declare_raw_fn(self, name, llvm::CCallConv, unnamed, visibility, fn_type)
     }