aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/metadata.rs
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-04-29 19:20:10 +0000
committerGraydon Hoare <[email protected]>2011-04-29 19:20:20 +0000
commit7b95b5c033435e0b8902c3f3afb14c80e04fee83 (patch)
treeb42d338d615d96c2c30e991555730ad39b9c793f /src/comp/middle/metadata.rs
parentImplement destructors in rustc (diff)
downloadrust-7b95b5c033435e0b8902c3f3afb14c80e04fee83.tar.xz
rust-7b95b5c033435e0b8902c3f3afb14c80e04fee83.zip
Don't emit metadata unless compiling -shared.
Diffstat (limited to 'src/comp/middle/metadata.rs')
-rw-r--r--src/comp/middle/metadata.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/comp/middle/metadata.rs b/src/comp/middle/metadata.rs
index 0cfe09b7..806f38b5 100644
--- a/src/comp/middle/metadata.rs
+++ b/src/comp/middle/metadata.rs
@@ -235,9 +235,9 @@ mod Encode {
}
-// Returns a Plain Old LLVM String, *without* the trailing zero byte.
+// Returns a Plain Old LLVM String.
fn C_postr(str s) -> ValueRef {
- ret llvm.LLVMConstString(_str.buf(s), _str.byte_len(s) - 1u, False);
+ ret llvm.LLVMConstString(_str.buf(s), _str.byte_len(s), False);
}
@@ -674,8 +674,11 @@ fn encode_metadata(@trans.crate_ctxt cx, @ast.crate crate)
ret C_postr(string_w.get_str());
}
-fn write_metadata(@trans.crate_ctxt cx, @ast.crate crate) {
- auto llmeta = encode_metadata(cx, crate);
+fn write_metadata(@trans.crate_ctxt cx, bool shared, @ast.crate crate) {
+ auto llmeta = C_postr("");
+ if (shared) {
+ llmeta = encode_metadata(cx, crate);
+ }
auto llconst = trans.C_struct(vec(llmeta));
auto llglobal = llvm.LLVMAddGlobal(cx.llmod, trans.val_ty(llconst),