]> git.lizzy.rs Git - rust.git/commitdiff
Rollup merge of #99511 - RalfJung:raw_eq, r=wesleywiser
authorMatthias Krüger <matthias.krueger@famsik.de>
Thu, 11 Aug 2022 20:53:01 +0000 (22:53 +0200)
committerGitHub <noreply@github.com>
Thu, 11 Aug 2022 20:53:01 +0000 (22:53 +0200)
make raw_eq precondition more restrictive

Specifically, don't allow comparing pointers that way. Comparing pointers is subtle because you have to talk about what happens to the provenance.

This matches what [Miri already implements](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=9eb1dfb8a61b5a2d4a7cee43df2717af), and all existing users are fine with this.

If raw_eq on pointers is ever desired, we can adjust the intrinsic spec and Miri implementation as needed, but for now that seems just unnecessary. Also, this is a const intrinsic, and in const, comparing pointers this way is *not possible* -- so if we allow the intrinsic to compare pointers in general, we need to impose an extra restrictions saying that in const-context, pointers are *not* okay.

1  2 
library/core/src/intrinsics.rs

Simple merge