about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-04-19 21:11:28 +0200
committerGitHub <noreply@github.com>2020-04-19 21:11:28 +0200
commitb20bd73673fc06fa48e962cb2457cab7fdca9e79 (patch)
tree88d3a7aaa93b2a704a2b8c6bd4b1cec3339bf793 /src
parentab44c7701ef6214ba3ce89c0c1aac9baf4aa078a (diff)
parentf6adbc3a26e6bfc5b1d6a1cc9eedaf1786786e58 (diff)
downloadrust-b20bd73673fc06fa48e962cb2457cab7fdca9e79.tar.gz
rust-b20bd73673fc06fa48e962cb2457cab7fdca9e79.zip
Rollup merge of #71317 - RalfJung:unleash-inline-asm, r=ecstatic-morse
miri-unleash test for llvm_asm

r? @oli-obk @ecstatic-morse
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/consts/miri_unleashed/inline_asm.rs14
-rw-r--r--src/test/ui/consts/miri_unleashed/inline_asm.stderr11
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/consts/miri_unleashed/inline_asm.rs b/src/test/ui/consts/miri_unleashed/inline_asm.rs
new file mode 100644
index 00000000000..f5613102562
--- /dev/null
+++ b/src/test/ui/consts/miri_unleashed/inline_asm.rs
@@ -0,0 +1,14 @@
+// compile-flags: -Zunleash-the-miri-inside-of-you
+// only-x86_64
+#![feature(llvm_asm)]
+#![allow(const_err)]
+
+fn main() {}
+
+// Make sure we catch executing inline assembly.
+static TEST_BAD: () = {
+    unsafe { llvm_asm!("xor %eax, %eax" ::: "eax"); }
+    //~^ ERROR could not evaluate static initializer
+    //~| NOTE in this expansion of llvm_asm!
+    //~| NOTE inline assembly is not supported
+};
diff --git a/src/test/ui/consts/miri_unleashed/inline_asm.stderr b/src/test/ui/consts/miri_unleashed/inline_asm.stderr
new file mode 100644
index 00000000000..3cbdd326c82
--- /dev/null
+++ b/src/test/ui/consts/miri_unleashed/inline_asm.stderr
@@ -0,0 +1,11 @@
+error[E0080]: could not evaluate static initializer
+  --> $DIR/inline_asm.rs:10:14
+   |
+LL |     unsafe { llvm_asm!("xor %eax, %eax" ::: "eax"); }
+   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline assembly is not supported
+   |
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0080`.