printf("%d\n", i++ * i++);
i++ + j++ * k++
i++ + (j++ * k++)
I do not do such masochism. I figured out: besides the option -O2 is necessary to specify the option -fp: double (not everyone thought of this before!). Previously, this was not. Perhaps the developers overheated in the sun.
Not everyone has such deep knowledge as you. Previous versions did not require the option -fp:double. Microsoft's compiler option -fp: fast is working correctly, and Intel's compiler - no. Previous versions of the Intel's compiler work correctly with only one option -O2. I think that developers are too hasty.