On Mon, Mar 06, 2017 at 10:09:01AM +1100, Benjamin Herrenschmidt wrote: > > The compiler can do whatever it likes with code that has undefined > > behaviour. With this optimisation it a) can compile the conforming > > code to something better; and b) undefined behaviour will trap instead > > of doing something random (which often is exploitable). > > I actually like that feature,
Yeah, me too -- it also (currently) makes *smaller* code than it would without it. Win-win-win. > except it did bite me once or twice in the past > adding traps to intentional NULL dereferences ;-) Ah the joys of writing > a firmware where you poke at stuff at fixed addresses in low memory :-) You cannot really have something at address 0, the way NULL pointers are represented in GCC. 0 in firmware, so *fun*, especially before the CFAR was invented. "Something jumped to 0, CTR is 0 so it's probably a BCTR, but which one of the 6000?" What do you have at 0? Not anything you need often I hope? Segher