https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81513
--- Comment #2 from Pavel Roskin <proski at gnu dot org> --- __has_cpp_attribute is not supposed to check if the functionality is available somehow using some other approaches and keywords. It is supposed to check if the functionality is available as an attribute. Even is there is some alternative notation for C++03, I expect the attribute name to be the same. If __has_cpp_attribute(maybe_unused) is set to a non-zero value, I expect to use "maybe_unused", not "unused".