Mike Stump wrote:
Only in one direction does the standard make it undefined, as I quoted. I know why they do this, and I am arguing that that latitude should not be used to try and `optimize' things to make them behave differently (such as calling abort for example) in the presence of volatile.
There is no point in deliberately creating bad behavior, but on the other hand, there is no basis for suppressing a generally useful optimization to guarantee someones idea of a definition of undefined. I do agree that if a) everyone agrees on what the "sensible" definition is b) the optimization is not valuable then it is better to behave as expected.