> Does the C standard say anywhere that if you read an arbitrary
buffer before ever writing it ...
It says that if you do that, the compiler can do whatever it likes, including removing all of
your files exactly two hours later. Because of this use of uninitialized memory is a serious
bug, and it is good that they were trying to fix it. No compiler will intentionally do
something destructive, but agressive optimizations can make the bug spread in very unexpected
ways to other parts of your program.
In practical terms though, there was not a huge problem - the error had only minor effects on
the program. The fix was not correct and was far worse than the original bug.
> even the nastiest C compiler will be obligated to do the right
Don't be so sure about that. The compiler is not obligated to do anything reasonable once you
trigger undefined behavior. There is certainly no "right" behavior in those cases.