From 30768d3609d905439a129e7e9bf4571b38e321f3 Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Fri, 24 Aug 2012 12:27:39 -0700 Subject: [PATCH] rustc: Don't emit metadata for default and GC box addrspaces. --- src/rustc/middle/trans/base.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs index 90b314aac30d..74eab331f46f 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); + } }; }