https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63818

--- Comment #5 from Blaine Bell <blaine at blainebell dot org> ---
> There is no sequence point between the pre-increments of i as common inside a 
> function call is not a sequence point.  So the order of which arguments are 
> evaluated 
> is not defined in the standard which is why you get different behavior 
> between two 
> different compilers.

Ah, ok. I see.  The problem is that the spec is trying to provide "flexibility"
for asynchronous execution, when in-fact, it adds to the ambiguity and
confusion of the language.  This makes sense on why this is a problem, but this
is a serious flaw in how the language was defined.  Asynchronously and
performance should be addressed separately, not at the same time as trying to
express logic of a program.

Reply via email to