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