rust
rust copied to clipboard
Never emit `vptr` for empty/auto traits
Emiting vptr
s for empty/auto traits is unnecessary (#114942) and causes unsoundness in trait_upcasting
(#131813). This PR should ensure that we never emit vtables for such traits. See the linked issues for more details.
I'm not sure if I can add tests for the vtable layout. So this PR only adds tests for the soundness hole (i.e., the segmentation fault will disappear after this PR).
Fixes #114942 Fixes #131813
Cc #65991 (tracking issue for trait_upcasting
)
r? @WaffleLapkin (per https://github.com/rust-lang/rust/issues/131813#issuecomment-2419969745)