Harry Wahl wrote:

<begin extract>
It is at the compiler's and optimizer's discretion to decide the order
of execution for code that the C++ standard does not specifically
define. This includes overlapping execution.
</end extract>

and this may be conceded.  What is not "in the compiler's and
optimizer's discretion" is to produce different final numerical or
string results for different levels of optimization.

Even notionally strange behavior, which violates naif notions of
minimal surprise, may be entirely appropriate   Inconsistent behavior
as a function of optimization level is not.

Viewed as a black box, the behavior of a a program must be
deterministic in the sense that that a set I of inputs always produces
the same set O of outputs.   (If there are pseudo-random number
generators or the like somewhere in the stew it may be necessary to
specify O probabilistically, but nothing of that sort is involved
here.)

Moreover, 'sequence points' as I understand them do not differ from
one compilation of an unaltered source program to another (although
their treatment by different compilers may).

Finally, the phrase "This includes overlapping execution" is a
diversion here.  The only sort of overlapping execution that this
compiler and optimizer support, indirectly, is that realized by
explicit execution-time multiprogramming.  In a word, this phrase is
not seriƶs here.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to