Skip to content

Store pointer bytes in pointers, don't transmute #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

saethlin
Copy link

Round-trips of pointers through integers are extremely problematic for a
memory model to accomodate, and if done by a transmute are basically
impossible. The problem is that a compiler doing provenance-based
optimizations can't keep track of which memory has had its address
preserved, so with ptr-int-ptr transmutes your choices are basically no
provenance optimizations or UB. And we like optimizations. These
operations are not yet formally declared to be UB, but it's hard to
imagine an alternative.


Also btw the tests now fail because compare_and_swap is deprecated. I'm not really sure what you want to do with that.

Round-trips of pointers through integers are extremely problematic for a
memory model to accomodate, and if done by a transmute are basically
impossible. The problem is that a compiler doing provenance-based
optimizations can't keep track of which memory has had its address
preserved, so with ptr-int-ptr transmutes your choices are basically no
provenance optimizations or UB. And we like optimizations. These
operations are not yet formally declared to be UB, but it's hard to
imagine an alternative.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant