Description
This issue is part of the Strict Provenance Experiment - #95228
tagged_ptr and everything that uses it is entirely provenance crimes
rust/compiler/rustc_data_structures/src/tagged_ptr.rs
Lines 52 to 60 in bb5c437
This is the precise point in updating std+compiler to conform to strict-provenance that I ran out of energy and just started marking the compiler as WONTFIX for the MVP. I believe @eddyb started working on this, but got a bit sidetracked because they ran into the fact that we're shifting pointers down so that we can high-bit-tag instead of low-bit-tag, and while this isn't per-se a problem for strict-provenance, it wasn't obviously portable to CHERI, which sucks.
Since then it's been clarified that e.g. Morello (CHERI on ARM) actually has allowances for high-bit tagging and pointer shifting, so it's possible that the code can just be changed to properly use pointers and with_addr
and friends.