I'm not saying anything about strict aliasing. maybe you're using a different definition of "defined". If some behavior is defined, can compiler optimizations change observations of it?
-
-
The answer does not have to be “yes”. Java and JS both have well defined semantics except timing, and compilers optimize those a lot.
1 reply 0 retweets 0 likes -
I'm being consistent: I said I want OOB read/write to read/write to any object, under -O0 or any optimization level. Even every execution of the -O0 program could write to a different object (and that can happen today).
0 replies 0 retweets 0 likes -
Replying to @johnregehr @filpizlo and
Sadly we don’t even have the developer bandwidth to implement safe Rust optimizations anytime soon, much less unsafe ones :(
1 reply 0 retweets 2 likes -
Replying to @pcwalton @johnregehr and
Our optimization story for unsafe code is gonna be “whatever LLVM does ¯\_(ツ)_/¯” for quite a while
0 replies 0 retweets 1 like
I don’t mean that we specify what LLVM does as part of the official semantics. Rust’s compatibility guarantee doesn’t and can’t extend to UB, because otherwise even changing the register allocator could be considered a breaking change…
-
-
Replying to @pcwalton @BRIAN_____ and
It literally said “unsafe” on the tin can!
0 replies 0 retweets 1 likeThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.