about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-03-30 10:09:10 +0000
committerbors <bors@rust-lang.org>2022-03-30 10:09:10 +0000
commite50ff9b4521234e56ff46f8ed0372d5cb5689654 (patch)
treecbdc3072e4ed48fb9ffbae2c29438a7c37ae1f06 /compiler/rustc_trait_selection/src
parent05142a7e4495f09141fdd65f140fe44d8c200a9e (diff)
parente3a3afe05099dc1f9078fa1f65ade467b92f42c3 (diff)
downloadrust-e50ff9b4521234e56ff46f8ed0372d5cb5689654.tar.gz
rust-e50ff9b4521234e56ff46f8ed0372d5cb5689654.zip
Auto merge of #95241 - Gankra:cleaned-provenance, r=workingjubilee
Strict Provenance MVP

This patch series examines the question: how bad would it be if we adopted
an extremely strict pointer provenance model that completely banished all
int<->ptr casts.

The key insight to making this approach even *vaguely* pallatable is the

ptr.with_addr(addr) -> ptr

function, which takes a pointer and an address and creates a new pointer
with that address and the provenance of the input pointer. In this way
the "chain of custody" is completely and dynamically restored, making the
model suitable even for dynamic checkers like CHERI and Miri.

This is not a formal model, but lots of the docs discussing the model
have been updated to try to the *concept* of this design in the hopes
that it can be iterated on.

See #95228
Diffstat (limited to 'compiler/rustc_trait_selection/src')
0 files changed, 0 insertions, 0 deletions