On Saturday 22 October 2005 13:20, manus at eiffel dot com wrote: > Would it make sense to have a new option in `gcc' to say that target is > always evaluated after source is? > Not really possible. You are correct that it occurs at any optimization level.
The bug in your code is exposed when GCC creates the intermediate representation for your program. In that intermediate representation, GCC is explicitly exposing the sequence points in expression evaluation using the standard rules. Your program breaks simply because it is not following the sequence points dictated by the standard.