Currently, we only accept clang as the scoped attribute identifier for double square bracket attributes provided by Clang, but this has the potential to conflict with user-defined macros. To help alleviate these concerns, this patch introduces the _Clang scoped attribute identifier as an alias for clang.
GCC elected to go with __gnu__ for their protected name, but we cannot follow suit due to __clang__ being a predefined macro that identifies the implementation. I added a warning with a fixit on the off chance someone attempts to use __clang__ as the scoped attribute identifier, but do not support the spelling fully (for instance, __has_cpp_attribute does not support __clang__).
That was a complicated way of doing something simple.