rupprecht wrote:

It looks like this caused some new `-Wextra-qualification` warnings 
(playground: https://godbolt.org/z/3MbMjGYET)

```
namespace foo {
template <typename T>
struct Z {};

template <>
struct Z<bool> {}; // OK

template <>
struct foo::Z<int> {}; // New warning: extra qualification on member 'Z' 
[-Wextra-qualification]

template <>
struct ::foo::Z<double> {}; // New warning: extra qualification on member 'Z' 
[-Wextra-qualification]
}  // namespace foo
```

This doesn't use `template` in the way described in the commit or the release 
notes, so it doesn't seem like an intentional change. But GCC already errors on 
this (and downgrades to a warning with `-fpermissive`), so Clang isn't 
necessarily wrong to start warning about this now. Still, it's possible GCC and 
Clang are both wrong now, so I just want to make sure that's actually a desired 
side effect of this commit.

This behavior change is covered by the test diffs here in 
clang/test/CXX/drs/dr23xx.cpp and 
clang/test/SemaTemplate/class-template-spec.cpp.

https://github.com/llvm/llvm-project/pull/78595
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to