about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan MacKenzie <ecstaticmorse@gmail.com>2020-04-21 09:24:41 -0700
committerDylan MacKenzie <ecstaticmorse@gmail.com>2020-04-21 09:24:41 -0700
commit152c06569b6d785cea2d408c3ebd93aaee09772d (patch)
treee4d5dfac95cf55beb2ce1a3b043070e96af0b52d
parent79543397d70c15991dfc56fb4f89988326d4fcf3 (diff)
downloadrust-152c06569b6d785cea2d408c3ebd93aaee09772d.tar.gz
rust-152c06569b6d785cea2d408c3ebd93aaee09772d.zip
Assign correct span to new illegal ops
-rw-r--r--src/librustc_mir/transform/check_consts/validation.rs2
-rw-r--r--src/test/ui/consts/inline_asm.stderr6
-rw-r--r--src/test/ui/consts/miri_unleashed/inline_asm.rs4
-rw-r--r--src/test/ui/consts/miri_unleashed/inline_asm.stderr13
4 files changed, 14 insertions, 11 deletions
diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/src/librustc_mir/transform/check_consts/validation.rs
index b1cc7edc774..231b3be8982 100644
--- a/src/librustc_mir/transform/check_consts/validation.rs
+++ b/src/librustc_mir/transform/check_consts/validation.rs
@@ -485,9 +485,11 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> {
                 | FakeReadCause::ForGuardBinding,
                 _,
             ) => {
+                self.super_statement(statement, location);
                 self.check_op(ops::IfOrMatch);
             }
             StatementKind::LlvmInlineAsm { .. } => {
+                self.super_statement(statement, location);
                 self.check_op(ops::InlineAsm);
             }
 
diff --git a/src/test/ui/consts/inline_asm.stderr b/src/test/ui/consts/inline_asm.stderr
index 68a78d6175f..0a064c81366 100644
--- a/src/test/ui/consts/inline_asm.stderr
+++ b/src/test/ui/consts/inline_asm.stderr
@@ -1,8 +1,10 @@
 error[E0019]: constant contains unimplemented expression type
-  --> $DIR/inline_asm.rs:3:1
+  --> $DIR/inline_asm.rs:3:24
    |
 LL | const _: () = unsafe { llvm_asm!("nop") };
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^^^^^^^^^^^^^^^^
+   |
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/consts/miri_unleashed/inline_asm.rs b/src/test/ui/consts/miri_unleashed/inline_asm.rs
index f5be75431ba..ddc4767b83a 100644
--- a/src/test/ui/consts/miri_unleashed/inline_asm.rs
+++ b/src/test/ui/consts/miri_unleashed/inline_asm.rs
@@ -6,9 +6,11 @@
 fn main() {}
 
 // Make sure we catch executing inline assembly.
-static TEST_BAD: () = { //~ WARN: skipping const checks
+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
+    //~| WARN skipping const checks
+    //~| NOTE in this expansion of llvm_asm!
 };
diff --git a/src/test/ui/consts/miri_unleashed/inline_asm.stderr b/src/test/ui/consts/miri_unleashed/inline_asm.stderr
index ef11c5b1d1a..444a0172621 100644
--- a/src/test/ui/consts/miri_unleashed/inline_asm.stderr
+++ b/src/test/ui/consts/miri_unleashed/inline_asm.stderr
@@ -1,13 +1,10 @@
 warning: skipping const checks
-  --> $DIR/inline_asm.rs:9:1
+  --> $DIR/inline_asm.rs:10:14
+   |
+LL |     unsafe { llvm_asm!("xor %eax, %eax" ::: "eax"); }
+   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
-LL | / static TEST_BAD: () = {
-LL | |     unsafe { llvm_asm!("xor %eax, %eax" ::: "eax"); }
-LL | |
-LL | |
-LL | |
-LL | | };
-   | |__^
+   = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0080]: could not evaluate static initializer
   --> $DIR/inline_asm.rs:10:14