Re:Deconstructing K&R C Is Dead (2015)
by the_why_of_y on Thursday May 19, 2016 @08:53AM
(#11729740)
> Unsurprisingly, you left out the second part of the (later) definition:
It is not part of the normative definition, which says "for which this International Standard imposes no requirements". In ISO standards, notes are without exception non-normative.
Although I think they really should add your proposed text as an additional example, as their current set of examples is evidently confusingly incomplete :-)
Utter nonsense. I use that word carefully, but in this case it is absolutely appropriate.
Compiler optimisations per an old but very useful definition aren't allowed to change the visible behaviour of programs (in terms of output, obviously they are allowed to change execution times).
For example, even just a couple of years ago the compilers I used would execute a loop that sums the first n integers. Nowadays compilers detect this and replace the loop with the result. While this isn't particularly useful, because probably the only reason you're summing the first n integers in a loop is to do some measurements, it is (a) a perfectly legal optimisation and (b) happened after 1990.
Unsurprisingly, you left out the second part of the (later) definition:
Notably absent is "use the undefined behaviour to shave another 0.2% off my favourite benchmark".