aaron.ballman added a comment.
In https://reviews.llvm.org/D52400#1266307, @sberg wrote:
> doesnt this make -Wshadow more aggressive for enumerators than for other
> entities?
It does, but whether that's an issue with the enumerator shadow diagnosing or
with the other entities not diagnosing, I'm less clear. Consider this slight
modification to your code:
struct S1;
struct S2;
struct S3 {
void S1();
enum { S2 };
void f(S2 s);
};
On the one hand, the warning is telling you about a problem before you hit it.
However, this code will err on the declaration of `S::f()` anyway because `S2`
is not a type, so the warning doesn't get us all *that* much benefit.
Then again, this is a case where you don't get any error but you do get a
silent behavioral ambiguity without the current enumerator shadow diagnostic:
struct S1;
struct S2;
struct S3 {
void S1();
enum { S2 };
void f(decltype(S2) s);
};
So there are cases where this behavior can be somewhat useful.
> (ran into such a new -Wshadow while compiling LibreOffice)
Was it a frequent/annoying occurrence?
https://reviews.llvm.org/D52400
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits