On Apr 30, 2016, at 11:43 AM, Diane Bruce <[email protected]> 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