https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86491
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #8) > A variable declared 'static' has internal linkage, and so does a variable in > an anonymous namespace, which is probably the source of the mix-up in GCC's > warning. Actually I think the warning was added before C++11 support for allowing static variables in template args so anonymous namespaces were the only internal linkage existing.