From: Segher Boessenkool > Sent: 06 March 2017 14:18 > On Mon, Mar 06, 2017 at 01:03:19PM +0100, Gabriel Paubert wrote: > > > > > The PowerPC divw etc. instructions do not trap by themselves, but > > > > > recent > > > > > GCC inserts trap instructions on code paths that are always undefined > > > > > behaviour (like, dividing by zero). > > > > > > > > Is it systematic or does it depend from, e.g., optimization levels? > > > > > > In this case it needs -fisolate-erroneous-paths-dereference which is > > > default at -O2 and higher. > > > > Great, another optimization-dependent behaviour. :-( > > It makes the "behaviour" for undefined behaviour *less* surprising. > It does not change anything else: malformed programs stay malformed, > correct programs do exactly what they did before, too.
Yep, 'undefined behaviour' is exactly that. It doesn't mean 'undefined result', or 'maybe a signal'. Wiping the disk and targeting the user with an ICBM are both valid. David