about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-04-02 15:52:00 -0700
committerbors <bors@rust-lang.org>2016-04-02 15:52:00 -0700
commit5ab11d72cab23f0cea63cbf7a88817ff2a45bab0 (patch)
tree3c33f3bd8aab12eec81c8adb23224640e395ed53
parent3ec71b033a81f2a7d7c24db265d1e1c2c437339a (diff)
parent4b9ddf4573bacc62a4a6b2ecbafe095e745331c5 (diff)
downloadrust-5ab11d72cab23f0cea63cbf7a88817ff2a45bab0.tar.gz
rust-5ab11d72cab23f0cea63cbf7a88817ff2a45bab0.zip
Auto merge of #32667 - dotdash:def_dec, r=nagisa
Stop accepting declarations when looking for definitions

eternally_available linkage isn't legal for declarations anyway, so the
check for an externally_available declaration should never succeed, so
let's remove it.
-rw-r--r--src/librustc_trans/declare.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/librustc_trans/declare.rs b/src/librustc_trans/declare.rs
index f49d303a5a8..83af511f087 100644
--- a/src/librustc_trans/declare.rs
+++ b/src/librustc_trans/declare.rs
@@ -28,7 +28,6 @@ use context::CrateContext;
 use type_::Type;
 
 use std::ffi::CString;
-use libc::c_uint;
 
 
 /// Declare a global value.
@@ -159,14 +158,12 @@ pub fn get_defined_value(ccx: &CrateContext, name: &str) -> Option<ValueRef> {
         debug!("get_defined_value: {:?} value is null", name);
         None
     } else {
-        let (declaration, aext_link) = unsafe {
-            let linkage = llvm::LLVMGetLinkage(val);
-            (llvm::LLVMIsDeclaration(val) != 0,
-             linkage == llvm::AvailableExternallyLinkage as c_uint)
+        let declaration = unsafe {
+            llvm::LLVMIsDeclaration(val) != 0
         };
-        debug!("get_defined_value: found {:?} value (declaration: {}, \
-                aext_link: {})", name, declaration, aext_link);
-        if !declaration || aext_link {
+        debug!("get_defined_value: found {:?} value (declaration: {})",
+                name, declaration);
+        if !declaration {
             Some(val)
         } else {
             None