Rollup merge of #128453 - RalfJung:raw_eq, r=saethlin · model-checking/verify-rust-std@28e4d22 (original) (raw)

Original file line number Diff line number Diff line change
@@ -2436,11 +2436,13 @@ extern "rust-intrinsic" {
2436 2436 ///
2437 2437 /// # Safety
2438 2438 ///
2439 - /// It's UB to call this if any of the *bytes* in `*a` or `*b` are uninitialized or carry a
2440 - /// pointer value.
2439 + /// It's UB to call this if any of the *bytes* in `*a` or `*b` are uninitialized.
2441 2440 /// Note that this is a stricter criterion than just the *values* being
2442 2441 /// fully-initialized: if `T` has padding, it's UB to call this intrinsic.
2443 2442 ///
2443 + /// At compile-time, it is furthermore UB to call this if any of the bytes
2444 + /// in `*a` or `*b` have provenance.
2445 + ///
2444 2446 /// (The implementation is allowed to branch on the results of comparisons,
2445 2447 /// which is UB if any of their inputs are `undef`.)
2446 2448 #[rustc_const_unstable(feature = "const_intrinsic_raw_eq", issue = "none")]