diff options
| author | Elliott Slaughter <eslaughter@mozilla.com> | 2012-08-24 12:27:39 -0700 |
|---|---|---|
| committer | Elliott Slaughter <eslaughter@mozilla.com> | 2012-08-24 14:01:27 -0700 |
| commit | 30768d3609d905439a129e7e9bf4571b38e321f3 (patch) | |
| tree | e99e0183682b4f2b08c79454091ca059e468d947 | |
| parent | 2189f21d308d16c74507dd7babdb88f5df37eeed (diff) | |
| download | rust-30768d3609d905439a129e7e9bf4571b38e321f3.tar.gz rust-30768d3609d905439a129e7e9bf4571b38e321f3.zip | |
rustc: Don't emit metadata for default and GC box addrspaces.
| -rw-r--r-- | src/rustc/middle/trans/base.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs index 90b314aac30..74eab331f46 100644 --- a/src/rustc/middle/trans/base.rs +++ b/src/rustc/middle/trans/base.rs @@ -659,14 +659,16 @@ fn emit_tydescs(ccx: @crate_ctxt) { lib::llvm::SetLinkage(gvar, lib::llvm::InternalLinkage); // Index tydesc by addrspace. - let llty = T_ptr(ccx.tydesc_type); - let addrspace_name = #fmt("_gc_addrspace_metadata_%u", - ti.addrspace as uint); - let addrspace_gvar = str::as_c_str(addrspace_name, |buf| { - llvm::LLVMAddGlobal(ccx.llmod, llty, buf) - }); - lib::llvm::SetLinkage(addrspace_gvar, lib::llvm::InternalLinkage); - llvm::LLVMSetInitializer(addrspace_gvar, gvar); + if ti.addrspace > gc_box_addrspace { + let llty = T_ptr(ccx.tydesc_type); + let addrspace_name = #fmt("_gc_addrspace_metadata_%u", + ti.addrspace as uint); + let addrspace_gvar = str::as_c_str(addrspace_name, |buf| { + llvm::LLVMAddGlobal(ccx.llmod, llty, buf) + }); + lib::llvm::SetLinkage(addrspace_gvar, lib::llvm::InternalLinkage); + llvm::LLVMSetInitializer(addrspace_gvar, gvar); + } }; } |
