diff options
| author | Björn Steinbrink <bsteinbr@gmail.com> | 2016-04-01 15:24:56 +0200 |
|---|---|---|
| committer | Björn Steinbrink <bsteinbr@gmail.com> | 2016-04-01 15:24:56 +0200 |
| commit | 4b9ddf4573bacc62a4a6b2ecbafe095e745331c5 (patch) | |
| tree | c3fe44001dfcbe89595bfa8f61e9dfec8fd94f89 | |
| parent | 53498eca50e25d8a11f9dc5859770715fa906fa7 (diff) | |
| download | rust-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.rs | 13 |
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 |
