summary refs log tree commit diff
path: root/src/libsyntax/print
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2013-03-12 17:53:25 -0700
committerLuqman Aden <laden@mozilla.com>2013-03-15 18:55:43 -0700
commit6d078db952cf76b35bbd8577fe6a9f5d9e12c566 (patch)
tree2682c9a4aaf0ede8ae49cc5294429176f830cb4f /src/libsyntax/print
parent471d2b17657bdaea357faeaa3e857f8a758bfbe3 (diff)
downloadrust-6d078db952cf76b35bbd8577fe6a9f5d9e12c566.tar.gz
rust-6d078db952cf76b35bbd8577fe6a9f5d9e12c566.zip
Actually pass inline asm operands around.
Diffstat (limited to 'src/libsyntax/print')
-rw-r--r--src/libsyntax/print/pprust.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 724e61daea7..370434010b2 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -1403,7 +1403,7 @@ pub fn print_expr(s: @ps, &&expr: @ast::expr) {
           }
         }
       }
-      ast::expr_inline_asm(a, c, v, _) => {
+      ast::expr_inline_asm(a, in, out, c, v, _) => {
         if v {
             word(s.s, ~"__volatile__ asm!");
         } else {
@@ -1411,7 +1411,23 @@ pub fn print_expr(s: @ps, &&expr: @ast::expr) {
         }
         popen(s);
         print_string(s, *a);
-        word_space(s, ~",");
+        word_space(s, ~":");
+        for out.each |&(co, o)| {
+            print_string(s, *co);
+            popen(s);
+            print_expr(s, o);
+            pclose(s);
+            word_space(s, ~",");
+        }
+        word_space(s, ~":");
+        for in.each |&(co, o)| {
+            print_string(s, *co);
+            popen(s);
+            print_expr(s, o);
+            pclose(s);
+            word_space(s, ~",");
+        }
+        word_space(s, ~":");
         print_string(s, *c);
         pclose(s);
       }