On Apr 30, 2016, at 11:43 AM, Diane Bruce <d...@db.net> wrote: > > We cannot use the same outdated ideas we used to use for 'C' > that we used 40 years ago today. Compilers have improved. > Know your tools. And that's all I have said.
In support of this, I’d encourage everyone who works with C to read Chris Lattner’s “What Every C Programmer Should Know About Undefined Behavior” series from the LLVM blog: http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html C has fairly well-defined semantics, they just aren’t necessarily what you think they are, and optimizers are taking advantage of them (under the “as if” rule) such that a developer’s idea of what assembly a specific section of C code should generate is not all that accurate these days. -- Chris