GCC Bugzilla – Bug 48099
Evaluation order of arguments in a call expression
Last modified: 2014-10-11 07:02:46 UTC
Using flag_evaluation_order instead of PUSH_ARGS_REVERSE in gimplify_call_expr shouldn't have any effect on the actual order arguments are actually written, and gives correct behaviour for frontends that require left-to-right evaluation of arguments in a call expression. ie:
i = 1;
foo(i++, i++, i++); // foo(1,2,3)
Created attachment 23639 [details]
diff for 48099
Created attachment 23640 [details]
corrected diff for 48099
(In reply to comment #1)
> Created attachment 23639 [details]
> diff for 48099
Should be !flag_evaluation_order, sorry.
What front-end requires flag_evaluation_order now?
(In reply to Richard Biener from comment #4)
Even with the removal of the Java source compiler (the byte code one should be safe enough).
> What front-end requires flag_evaluation_order now?
The D front-end.
A PR has been raised to fix this in upstream frontend implementation.