https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83624
--- Comment #3 from andysem at mail dot ru --- As you noted, --pedantic-errors makes that code an error, so it is not an equivalent replacement. Also, GNU-specific attributes can and often are supported by other compilers. When they are not, the attributes are usually ignored. That is not true for inline namespaces, which would cause a hard error. What is the rationale of replacing an attribute, which is the traditional way of extension, with a non-standard (in C++03) syntax?