http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53194
--- Comment #2 from Yukhin Kirill <kirill.yukhin at intel dot com> 2012-05-02 19:20:59 UTC --- The problem is here: + + sprintf (hle_macro, "__ATOMIC_HLE_ACQUIRE=%d", IX86_HLE_ACQUIRE); + def_or_undef (parse_in, hle_macro); + + sprintf (hle_macro, "__ATOMIC_HLE_RELEASE=%d", IX86_HLE_RELEASE); + def_or_undef (parse_in, hle_macro); Seems, when def_or_undef acts as `undef` we've got a problem: $ /export/users/kyukhin/ws/build/build-x86_64-linux/gcc/xgcc -B/export/users/kyukhin/ws/build/build-x86_64-linux/gcc/ /export/users/ky o-diagnostics-show-caret -S -o sse-22.s /export/users/kyukhin/ws/git/gcc/testsuite/gcc.target/i386/sse-22.c:54:21: warning: extra tokens at end of #undef directive [enabled b /export/users/kyukhin/ws/git/gcc/testsuite/gcc.target/i386/sse-22.c:54:21: warning: extra tokens at end of #undef directive [enabled b