Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit da48417

Browse files
committedJul 31, 2024
raw_eq: using it on bytes with provenance is not UB (outside const-eval)
1 parent 787a1f7 commit da48417

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed
 

‎core/src/intrinsics.rs

+4-2
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")]

0 commit comments

Comments
 (0)
Failed to load comments.