* * * * * A bit of background on compilers exploiting signed overflow > Why do compilers even bother with exploiting undefinedness signed overflow? > And what are those mysterious cases where it helps? > > A lot of people (myself included) are against transforms that aggressively > exploit undefined behavior, but I think it's useful to know what compiler > writers are accomplishing by this. > > TL;DR (Too Long; Didn't Read): C doesn't work very well if int!=register > width, but (for backwards compat) int is 32-bit on all major 64-bit > targets, and this causes quite hairy problems for code generation and > optimization in some fairly common cases. The signed overflow UB (Undefined > Behavior) exploitation is an attempt to work around this. > Via Comment on ”Bug in my code from compiler optimization [video] | Hacker News” [1], “A bit of background on compilers exploiting signed overflow [2]” A cautionary tale about compiler writers exploiting undefined behavior. I don't have much to add here, other than to spread a bit of awareness of why this happens. [1] https://news.ycombinator.com/item?id=38662881 [2] https://gist.github.com/rygorous/e0f055bfb74e3d5f0af20690759de5a7 Email Sean Conner at sean@conman.org .