================
@@ -1537,6 +1537,10 @@ void Sema::PushOnScopeChains(NamedDecl *D, Scope *S,
bool AddToContext) {
cast<FunctionDecl>(D)->isFunctionTemplateSpecialization())
return;
+ if (isa<UsingEnumDecl>(D) && D->getDeclName().isEmpty()) {
----------------
zygoloid wrote:
The reserved identifier check appears to be incorrect. For example, for:
```c++
enum __A {
x, y
};
void f() {
using enum __A;
enum __A e;
}
```
Clang produces two warnings: one on the declaration of `enum __A` and one on
the `using enum __A`. The second warning is a bug -- the
`-Wreserved-identifier` warning is only supposed to fire on the declaration of
a reserved name, and `using enum __A` does not declare the name `__A`, it only
references it. (Note that there's no warning on the use of `enum __A` on the
next line, which again is only a reference, not a declaration.)
https://github.com/llvm/llvm-project/pull/87144
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits