about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2013-03-15 18:54:39 -0700
committerLuqman Aden <laden@mozilla.com>2013-03-15 18:57:19 -0700
commit83f2d4ab3dbd3b52ea60212a6698c73201b67a34 (patch)
tree02147f212bea60df1cf4391714cd1541fc3c6f43
parentd68b98a5bfebffb28d49e14e6568a69c547c74ae (diff)
downloadrust-83f2d4ab3dbd3b52ea60212a6698c73201b67a34.tar.gz
rust-83f2d4ab3dbd3b52ea60212a6698c73201b67a34.zip
Fix type_use for inline asm.
-rw-r--r--src/librustc/middle/moves.rs10
-rw-r--r--src/librustc/middle/trans/type_use.rs7
-rw-r--r--src/libsyntax/visit.rs4
3 files changed, 9 insertions, 12 deletions
diff --git a/src/librustc/middle/moves.rs b/src/librustc/middle/moves.rs
index 372c54f2b09..9848c65ac43 100644
--- a/src/librustc/middle/moves.rs
+++ b/src/librustc/middle/moves.rs
@@ -558,15 +558,7 @@ pub impl VisitContext {
                 self.use_expr(base, Read, visitor);
             }
 
-            expr_inline_asm(_, ref ins, ref outs, _, _, _) => {
-                for ins.each |&(c, in)| {
-                    // XXX: Do something?
-                }
-                for outs.each |&(c, out)| {
-                    // XXX: Do something?
-                }
-            }
-
+            expr_inline_asm(*) |
             expr_break(*) |
             expr_again(*) |
             expr_lit(*) => {}
diff --git a/src/librustc/middle/trans/type_use.rs b/src/librustc/middle/trans/type_use.rs
index 8439d941c90..692dc392173 100644
--- a/src/librustc/middle/trans/type_use.rs
+++ b/src/librustc/middle/trans/type_use.rs
@@ -350,7 +350,12 @@ pub fn mark_for_expr(cx: Context, e: @expr) {
       }
 
       expr_inline_asm(_, ref ins, ref outs, _, _, _) => {
-          // XXX Do something, maybe?
+        for ins.each |&(_, in)| {
+          node_type_needs(cx, use_repr, in.id);
+        }
+        for outs.each |&(_, out)| {
+          node_type_needs(cx, use_repr, out.id);
+        }
       }
 
       expr_paren(e) => mark_for_expr(cx, e),
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs
index 1fb81b5c702..6a0f1a2ec46 100644
--- a/src/libsyntax/visit.rs
+++ b/src/libsyntax/visit.rs
@@ -563,10 +563,10 @@ pub fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) {
         expr_mac(ref mac) => visit_mac((*mac), e, v),
         expr_paren(x) => (v.visit_expr)(x, e, v),
         expr_inline_asm(_, ins, outs, _, _, _) => {
-            for ins.each |&(c, in)| {
+            for ins.each |&(_, in)| {
                 (v.visit_expr)(in, e, v);
             }
-            for outs.each |&(c, out)| {
+            for outs.each |&(_, out)| {
                 (v.visit_expr)(out, e, v);
             }
         }