about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2011-12-06 14:02:06 -0800
committerNiko Matsakis <niko@alum.mit.edu>2011-12-06 19:55:45 -0800
commitaa99bfa170971b14bb72a10ef153480ec4caaa46 (patch)
tree157cebd5f0e4f7b94893515a7888e18fb77a97d6 /src/comp
parent15d60326f67e84608ff8b2ffe1984d9b4d600ba6 (diff)
downloadrust-aa99bfa170971b14bb72a10ef153480ec4caaa46.tar.gz
rust-aa99bfa170971b14bb72a10ef153480ec4caaa46.zip
do not stringify AST nodes unless emitting comments
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/trans.rs4
-rw-r--r--src/comp/middle/trans_build.rs4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 41df1b28edd..693c8ae79e8 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -4536,7 +4536,9 @@ fn zero_alloca(cx: @block_ctxt, llptr: ValueRef, t: ty::t)
 fn trans_stmt(cx: @block_ctxt, s: ast::stmt) -> @block_ctxt {
     // FIXME Fill in cx.sp
 
-    add_span_comment(cx, s.span, stmt_to_str(s));
+    if (!bcx_ccx(cx).sess.get_opts().no_asm_comments) {
+        add_span_comment(cx, s.span, stmt_to_str(s));
+    }
 
     let bcx = cx;
     alt s.node {
diff --git a/src/comp/middle/trans_build.rs b/src/comp/middle/trans_build.rs
index 02894769ae6..b7756b0902d 100644
--- a/src/comp/middle/trans_build.rs
+++ b/src/comp/middle/trans_build.rs
@@ -515,7 +515,9 @@ fn add_span_comment(bcx: @block_ctxt, sp: span, text: str) {
 fn add_comment(bcx: @block_ctxt, text: str) {
     let ccx = bcx_ccx(bcx);
     if (!ccx.sess.get_opts().no_asm_comments) {
-        let comment_text = "; " + text;
+        check str::is_not_empty("$");
+        let sanitized = str::replace(text, "$", "");
+        let comment_text = "; " + sanitized;
         let asm = str::as_buf(comment_text, { |c|
             str::as_buf("", { |e|
                 llvm::LLVMConstInlineAsm(T_fn([], T_void()), c, e, 0, 0)})});