Currently, Clang handles some qualifiers correctly for __auto_type, but it does not handle the restrict or _Atomic qualifiers in the same way that GCC does. This patch handles those qualifiers so that they attach to the deduced type the same as const and volatile already do.
This fixes https://github.com/llvm/llvm-project/issues/53652
So do we care if BOTH sides are this auto type? Further question: can there be more than 1 of these 'GNUAutoType's in the type system such that 10211 wouldn't fire?
Also, slight preference for AutoType having 'isGNUAutoTYpe' on it instead of this dance everywhere.
Speaking of which: that also makes me concerned about all the places in our code that assume !isDeclTypeAuto means C++ auto.... But that is perhaps for a future bug reporter to discover.