http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56825
--- Comment #2 from Evgeny Televitckiy <stelek at gmail dot com> 2013-04-03 09:09:22 UTC --- A small correction. Lines: But if we use more complicate: USE_E3_ARG_R(5, USE_E3_ARG_R(6, 7)); It expands to: (USE_E3_ARG_W(9, 0), 8, 8); Should be changed to: But if we use more complicate: USE_E3_ARG_W(8, USE_E3_ARG_W(9, 0)); It expands to: (USE_E3_ARG_W(9, 0), 8, 8);