https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86491
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- 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. N.B. your names like _C_ have undefined behaviour, do not use reserved names.