about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorLevente Kurusa <lkurusa@acm.org>2018-10-30 22:09:56 +0100
committerLevente Kurusa <lkurusa@acm.org>2018-10-30 22:09:56 +0100
commit46b9461c4b77bf51528c81207e190d74be63ca10 (patch)
treeb12e3c8e8a2ce1e951b166259531a22553bd6d1f /src/test
parent32ee20f45534fe6af73bf9e51e942ee1b6d34635 (diff)
downloadrust-46b9461c4b77bf51528c81207e190d74be63ca10.tar.gz
rust-46b9461c4b77bf51528c81207e190d74be63ca10.zip
Add a test for multiple cases of E0669
Signed-off-by: Levente Kurusa <lkurusa@acm.org>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/inline-asm-bad-operand.rs9
-rw-r--r--src/test/ui/inline-asm-bad-operand.stderr24
2 files changed, 27 insertions, 6 deletions
diff --git a/src/test/ui/inline-asm-bad-operand.rs b/src/test/ui/inline-asm-bad-operand.rs
index 37021f38cac..bbfb14b8d9d 100644
--- a/src/test/ui/inline-asm-bad-operand.rs
+++ b/src/test/ui/inline-asm-bad-operand.rs
@@ -21,6 +21,7 @@ fn main() {
     issue_37437();
     issue_40187();
     issue_54067();
+    multiple_errors();
 }
 
 fn issue_37433() {
@@ -55,3 +56,11 @@ fn issue_54067() {
         asm!("mov sp, $0"::"r"(addr)); //~ ERROR E0669
     }
 }
+
+fn multiple_errors() {
+    let addr: (u32, u32) = (1, 2);
+    unsafe {
+        asm!("mov sp, $0"::"r"(addr), //~ ERROR E0669
+                           "r"("hello e0669")); //~ ERROR E0669
+    }
+}
diff --git a/src/test/ui/inline-asm-bad-operand.stderr b/src/test/ui/inline-asm-bad-operand.stderr
index ceef990d181..2f650bfcab7 100644
--- a/src/test/ui/inline-asm-bad-operand.stderr
+++ b/src/test/ui/inline-asm-bad-operand.stderr
@@ -1,33 +1,45 @@
 error[E0669]: invalid value for constraint in inline assembly
-  --> $DIR/inline-asm-bad-operand.rs:28:24
+  --> $DIR/inline-asm-bad-operand.rs:29:24
    |
 LL |         asm!("" :: "r"("")); //~ ERROR E0669
    |                        ^^
 
 error[E0669]: invalid value for constraint in inline assembly
-  --> $DIR/inline-asm-bad-operand.rs:33:32
+  --> $DIR/inline-asm-bad-operand.rs:34:32
    |
 LL |         asm!("ret" : : "{rdi}"(target)); //~ ERROR E0669
    |                                ^^^^^^
 
 error[E0669]: invalid value for constraint in inline assembly
-  --> $DIR/inline-asm-bad-operand.rs:40:29
+  --> $DIR/inline-asm-bad-operand.rs:41:29
    |
 LL |     unsafe { asm!("" :: "i"(hello)) }; //~ ERROR E0669
    |                             ^^^^^
 
 error[E0669]: invalid value for constraint in inline assembly
-  --> $DIR/inline-asm-bad-operand.rs:48:38
+  --> $DIR/inline-asm-bad-operand.rs:49:38
    |
 LL |         asm!("movups $1, %xmm0"::"m"(arr)); //~ ERROR E0669
    |                                      ^^^
 
 error[E0669]: invalid value for constraint in inline assembly
-  --> $DIR/inline-asm-bad-operand.rs:55:32
+  --> $DIR/inline-asm-bad-operand.rs:56:32
    |
 LL |         asm!("mov sp, $0"::"r"(addr)); //~ ERROR E0669
    |                                ^^^^
 
-error: aborting due to 5 previous errors
+error[E0669]: invalid value for constraint in inline assembly
+  --> $DIR/inline-asm-bad-operand.rs:63:32
+   |
+LL |         asm!("mov sp, $0"::"r"(addr), //~ ERROR E0669
+   |                                ^^^^
+
+error[E0669]: invalid value for constraint in inline assembly
+  --> $DIR/inline-asm-bad-operand.rs:64:32
+   |
+LL |                            "r"("hello e0669")); //~ ERROR E0669
+   |                                ^^^^^^^^^^^^^
+
+error: aborting due to 7 previous errors
 
 For more information about this error, try `rustc --explain E0669`.