http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55970
--- Comment #5 from Yuri Rumyantsev <ysrumyan at gmail dot com> 2013-02-01 13:34:20 UTC --- I sent for review a simple fix that can be considered as workaround for this issue - I simply change macros #define PUSH_ARGS_REVERSED TARGET_PUSH_ARGS that allows user to preserve an order of function arguments evaluation if "-mno-push-args" option was added to compile. I also checked that adding that option will not affect on performance for Corei7 and Atom platforms. With modified gcc attached test is passed: gcc -O2 t.c t_main.c -mno-push-args ./a.out Test Passed