------- Comment #5 from jakub at gcc dot gnu dot org 2009-03-27 11:09 ------- Ah, I see. The problem is that rs6000_macro_to_expand sometimes calls cpp_get_token (when seeing a macro after vector token), and removes optionally some CPP_PADDING tokens and a NT_MACRO token (with PREV_WHITE set on it). This only affects vector, not pixel nor bool. Unfortunately, we can't expand vector to a macro defined as 'vector ' (without quotes), because that would mean infinite recursion. We could perhaps if macro_to_expand hook returns NULL set PREV_WHITE on the next token (on the libcpp side, as rs6000_macro_to_expand sees tokens as const cpp_token), or insert a CPP_PADDING token.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39558