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

Original file line numberDiff line numberDiff line change

@@ -2436,11 +2436,13 @@ extern "rust-intrinsic" {

24362436

///

24372437

/// # Safety

24382438

///

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.

24412440

/// Note that this is a stricter criterion than just the *values* being

24422441

/// fully-initialized: if `T` has padding, it's UB to call this intrinsic.

24432442

///

2443+

/// At compile-time, it is furthermore UB to call this if any of the bytes

2444+

/// in `*a` or `*b` have provenance.

2445+

///

24442446

/// (The implementation is allowed to branch on the results of comparisons,

24452447

/// which is UB if any of their inputs are `undef`.)

24462448

#[rustc_const_unstable(feature = "const_intrinsic_raw_eq", issue = "none")]