From aa99bfa170971b14bb72a10ef153480ec4caaa46 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 6 Dec 2011 14:02:06 -0800 Subject: [PATCH] do not stringify AST nodes unless emitting comments --- src/comp/middle/trans.rs | 4 +++- src/comp/middle/trans_build.rs | 4 +++- 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)})});