about summary refs log tree commit diff
path: root/src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs')
-rw-r--r--src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs b/src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs
new file mode 100644
index 00000000000..d45498d4bb4
--- /dev/null
+++ b/src/test/ui/llvm-asm/llvm-asm-out-read-uninit.rs
@@ -0,0 +1,32 @@
+// ignore-s390x
+// ignore-emscripten
+// ignore-powerpc
+// ignore-powerpc64
+// ignore-powerpc64le
+// ignore-sparc
+// ignore-sparc64
+// ignore-mips
+// ignore-mips64
+
+#![feature(llvm_asm)]
+
+fn foo(x: isize) { println!("{}", x); }
+
+#[cfg(any(target_arch = "x86",
+          target_arch = "x86_64",
+          target_arch = "arm",
+          target_arch = "aarch64"))]
+pub fn main() {
+    let x: isize;
+    unsafe {
+        llvm_asm!("mov $1, $0" : "=r"(x) : "r"(x));
+        //~^ ERROR use of possibly-uninitialized variable: `x`
+    }
+    foo(x);
+}
+
+#[cfg(not(any(target_arch = "x86",
+              target_arch = "x86_64",
+              target_arch = "arm",
+              target_arch = "aarch64")))]
+pub fn main() {}