Skip to content

Commit

Permalink
Auto merge of #2482 - RalfJung:raw-eq, r=RalfJung
Browse files Browse the repository at this point in the history
add test for raw_eq on a pointer

Let's make sure this keeps erroring; I have plans to refactor that part of the interpreter which will fix the error message (but could also lead to us accidentally accepting this which this test is there to avoid).
  • Loading branch information
bors committed Aug 12, 2022
2 parents 403b3f9 + 74e87b1 commit 4e1bc7e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tests/fail/intrinsics/raw_eq_on_ptr.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#![feature(intrinsics)]

extern "rust-intrinsic" {
fn raw_eq<T>(a: &T, b: &T) -> bool;
}

fn main() {
let x = &0;
// FIXME: the error message is not great (should be UB rather than 'unsupported')
unsafe { raw_eq(&x, &x) }; //~ERROR: unsupported operation
}
14 changes: 14 additions & 0 deletions tests/fail/intrinsics/raw_eq_on_ptr.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error: unsupported operation: unable to turn pointer into raw bytes
--> $DIR/raw_eq_on_ptr.rs:LL:CC
|
LL | unsafe { raw_eq(&x, &x) };
| ^^^^^^^^^^^^^^ unable to turn pointer into raw bytes
|
= help: this is likely not a bug in the program; it indicates that the program performed an operation that the interpreter does not support
= note: backtrace:
= note: inside `main` at $DIR/raw_eq_on_ptr.rs:LL:CC

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

error: aborting due to previous error

0 comments on commit 4e1bc7e

Please sign in to comment.