diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs index 9951d8f4fc153..02505457efa4d 100644 --- a/compiler/rustc_span/src/symbol.rs +++ b/compiler/rustc_span/src/symbol.rs @@ -1583,6 +1583,7 @@ symbols! { unrestricted_attribute_tokens, unsafe_block_in_unsafe_fn, unsafe_cell, + unsafe_cell_from_mut, unsafe_no_drop_flag, unsafe_pin_internals, unsize, diff --git a/library/backtrace b/library/backtrace index 4245978ca8169..07872f28cd8a6 160000 --- a/library/backtrace +++ b/library/backtrace @@ -1 +1 @@ -Subproject commit 4245978ca8169c40c088ff733825e4527f7b914c +Subproject commit 07872f28cd8a65c3c7428811548dc85f1f2fb05b diff --git a/library/core/src/cell.rs b/library/core/src/cell.rs index 2c3c14853a44b..744767aae44ca 100644 --- a/library/core/src/cell.rs +++ b/library/core/src/cell.rs @@ -2030,6 +2030,27 @@ impl UnsafeCell { } impl UnsafeCell { + /// Converts from `&mut T` to `&mut UnsafeCell`. + /// + /// # Examples + /// + /// ``` + /// # #![feature(unsafe_cell_from_mut)] + /// use std::cell::UnsafeCell; + /// + /// let mut val = 42; + /// let uc = UnsafeCell::from_mut(&mut val); + /// + /// *uc.get_mut() -= 1; + /// assert_eq!(*uc.get_mut(), 41); + /// ``` + #[inline(always)] + #[unstable(feature = "unsafe_cell_from_mut", issue = "111645")] + pub const fn from_mut(value: &mut T) -> &mut UnsafeCell { + // SAFETY: `UnsafeCell` has the same memory layout as `T` due to #[repr(transparent)]. + unsafe { &mut *(value as *mut T as *mut UnsafeCell) } + } + /// Gets a mutable pointer to the wrapped value. /// /// This can be cast to a pointer of any kind. diff --git a/library/stdarch b/library/stdarch index 7e2cdc675b921..b655243782c18 160000 --- a/library/stdarch +++ b/library/stdarch @@ -1 +1 @@ -Subproject commit 7e2cdc675b92165c5f8c4c794620252be4605e74 +Subproject commit b655243782c18d3419439daa523782e0818ecf26 diff --git a/src/doc/book b/src/doc/book index 8fa6b854d5155..0510ca84c2ce6 160000 --- a/src/doc/book +++ b/src/doc/book @@ -1 +1 @@ -Subproject commit 8fa6b854d515506d825390fe0d817f5ef0c89350 +Subproject commit 0510ca84c2ce6bf93c4ccf9248756e9e4fd00b12 diff --git a/src/doc/edition-guide b/src/doc/edition-guide index f63e578b92ff4..6038be9d37d72 160000 --- a/src/doc/edition-guide +++ b/src/doc/edition-guide @@ -1 +1 @@ -Subproject commit f63e578b92ff43e8cc38fcaa257b660f45c8a8c2 +Subproject commit 6038be9d37d7251c966b486154af621d1794d7af diff --git a/src/doc/embedded-book b/src/doc/embedded-book index d9eb4c3f75435..701d1551429da 160000 --- a/src/doc/embedded-book +++ b/src/doc/embedded-book @@ -1 +1 @@ -Subproject commit d9eb4c3f75435b008881062ffa77bf0d1527b37d +Subproject commit 701d1551429da4cb609082c0ac99df569e336710 diff --git a/src/doc/reference b/src/doc/reference index 28dc0f3576b55..3c47807a3131b 160000 --- a/src/doc/reference +++ b/src/doc/reference @@ -1 +1 @@ -Subproject commit 28dc0f3576b55f5e57c5d6e65cd68ba3161e9fd5 +Subproject commit 3c47807a3131b3c7cacb508f52632078d253cd0a diff --git a/src/doc/rust-by-example b/src/doc/rust-by-example index 8ee9528b72b92..ba84bf35d0f17 160000 --- a/src/doc/rust-by-example +++ b/src/doc/rust-by-example @@ -1 +1 @@ -Subproject commit 8ee9528b72b927cff8fd32346db8bbd1198816f0 +Subproject commit ba84bf35d0f17d404003349309201654d25f61af diff --git a/src/doc/rustc-dev-guide b/src/doc/rustc-dev-guide index 28dbeaf5c44bc..fca8af6c154c6 160000 --- a/src/doc/rustc-dev-guide +++ b/src/doc/rustc-dev-guide @@ -1 +1 @@ -Subproject commit 28dbeaf5c44bc7f5111ad412e99f2d7c5cec6c90 +Subproject commit fca8af6c154c6cde2512f1331cf2704f214a818e diff --git a/src/llvm-project b/src/llvm-project index ea6fa9c2d43aa..2b9c52f66815b 160000 --- a/src/llvm-project +++ b/src/llvm-project @@ -1 +1 @@ -Subproject commit ea6fa9c2d43aaf0f11559719eda9b54d356d5416 +Subproject commit 2b9c52f66815bb8d6ea74a4b26df3410602be9b0 diff --git a/src/tools/cargo b/src/tools/cargo index 13413c64ff88d..0e474cfd7b16b 160000 --- a/src/tools/cargo +++ b/src/tools/cargo @@ -1 +1 @@ -Subproject commit 13413c64ff88dd6c2824e9eb9374fc5f10895d28 +Subproject commit 0e474cfd7b16b018cf46e95da3f6a5b2f1f6a9e7