about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2016-04-01 15:24:56 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2016-04-01 15:24:56 +0200
commit4b9ddf4573bacc62a4a6b2ecbafe095e745331c5 (patch)
treec3fe44001dfcbe89595bfa8f61e9dfec8fd94f89
parent53498eca50e25d8a11f9dc5859770715fa906fa7 (diff)
downloadrust-4b9ddf4573bacc62a4a6b2ecbafe095e745331c5.tar.gz
rust-4b9ddf4573bacc62a4a6b2ecbafe095e745331c5.zip
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 28a70fd5e0b..8f273313b50 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