rust/library/alloc/src
Maybe Waffle 5645e8e285 Add more checks for pointers with vtable meta
The rules for casting `*mut X<dyn A>` -> `*mut Y<dyn B>` are as follows:
- If `B` has a principal
  - `A` must have exactly the same principal (including generics)
  - Auto traits of `B` must be a subset of autotraits in `A`

Note that `X<_>` and `Y<_>` can be identity, or arbitrary structs with last field being the dyn type.
The lifetime of the trait object itself (`dyn ... + 'a`) is not checked.

This prevents a few soundness issues with `#![feature(arbitrary_self_types)]` and trait upcasting.
Namely, these checks make sure that vtable is always valid for the pointee.
2024-07-04 17:56:09 +02:00
..
alloc run alloc benchmarks in Miri and fix UB 2022-11-07 10:34:04 +01:00
boxed Convert some module-level // and /// comments to //!. 2024-06-20 09:23:18 +10:00
collections Replace MaybeUninit::uninit_array() with array repeat expression. 2024-06-24 10:23:50 -07:00
ffi replace version placeholder 2024-06-11 16:52:02 +02:00
raw_vec try_with_capacity for RawVec 2024-03-01 18:20:48 +00:00
rc Generalize {Rc,Arc}::make_mut() to unsized types. 2024-06-22 08:08:00 -07:00
slice Revert panic_safe test changes 2024-06-17 22:05:35 +02:00
sync Detect unused structs which derived Default 2024-06-25 23:29:44 +08:00
testing Share testing utilities with non-btree test cases 2022-05-02 10:07:50 +02:00
vec Avoid MIR bloat in inlining 2024-07-01 05:17:13 -07:00
alloc.rs Replace WriteCloneIntoRaw with CloneToUninit. 2024-06-22 08:08:00 -07:00
borrow.rs Impl DerefPure for more std types 2024-04-05 00:02:42 +02:00
boxed.rs Add more checks for pointers with vtable meta 2024-07-04 17:56:09 +02:00
fmt.rs Auto merge of #125012 - RalfJung:format-error, r=Mark-Simulacrum,workingjubilee 2024-05-12 08:34:32 +00:00
lib.miri.rs add 'x.py miri', and make it work for 'library/{core,alloc,std}' 2024-04-03 20:27:20 +02:00
lib.rs Rollup merge of #123588 - tgross35:stabilize-assert_unchecked, r=dtolnay 2024-07-03 03:03:13 -04:00
macros.rs Remove __rust_force_expr. 2024-06-25 14:35:09 +10:00
raw_vec.rs Avoid MIR bloat in inlining 2024-07-01 05:17:13 -07:00
rc.rs Generalize {Rc,Arc}::make_mut() to unsized types. 2024-06-22 08:08:00 -07:00
slice.rs Fix wrong big O star bracing in the doc comments 2024-06-20 18:07:04 +02:00
str.rs Simplify str::clone_into 2024-06-25 22:34:41 +02:00
string.rs Auto merge of #99969 - calebsander:feature/collect-box-str, r=dtolnay 2024-05-19 02:13:06 +00:00
sync.rs Generalize {Rc,Arc}::make_mut() to unsized types. 2024-06-22 08:08:00 -07:00
task.rs lib: fix some unnecessary_cast clippy lint 2024-03-25 23:19:40 +03:00
tests.rs remove redundant imports 2023-12-10 10:56:22 +08:00