diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-21 09:24:41 -0700 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-21 09:24:41 -0700 |
| commit | 152c06569b6d785cea2d408c3ebd93aaee09772d (patch) | |
| tree | e4d5dfac95cf55beb2ce1a3b043070e96af0b52d | |
| parent | 79543397d70c15991dfc56fb4f89988326d4fcf3 (diff) | |
| download | rust-152c06569b6d785cea2d408c3ebd93aaee09772d.tar.gz rust-152c06569b6d785cea2d408c3ebd93aaee09772d.zip | |
Assign correct span to new illegal ops
| -rw-r--r-- | src/librustc_mir/transform/check_consts/validation.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/consts/inline_asm.stderr | 6 | ||||
| -rw-r--r-- | src/test/ui/consts/miri_unleashed/inline_asm.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/consts/miri_unleashed/inline_asm.stderr | 13 |
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 |
