------- Comment #5 from davek at gcc dot gnu dot org 2009-12-04 17:58 ------- Created an attachment (id=19225) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19225&action=view) Simple fix
The comment in the patch should explain. Namespace macros are defined at the top of c++config.h before target-specific headers are included, but need to allow a target-specific override, so we have the pseudo-vis macro in there and if it still isn't defined after the target-specific os_defines.h is included, it gets defaulted empty. That means the namespace macros can't be used until after either the os-specific override if any or the empty default has actually been defined for it of course. This works fine, except when an os_defines.h header needs to use the namespace macros itself. The trivial fix is for it to provide its own empty definition of the os-specific override, as here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42271