CarlosAlbertoEnciso added a comment.
In https://reviews.llvm.org/D46190#1083502, @rsmith wrote:
> Let's look at your original example again (I've cleaned it up and extended it
> a bit, but hopefully this matches your intent):
>
> namespace nsp {
> int var1, var2;
> }
>
> using nsp::var1;
> using nsp::var2;
>
> void bar() {
> nsp::var1 = 1;
> var2 = 1;
> }
>
>
> Now, what should happen here is:
>
> - The use of `nsp::var1` in `bar` marks `nsp::var1` as referenced (because it
> was named), and marks `nsp::var1` as used (because it was odr-used by the
> assignment). The `UsingShadowDecl` for `::var1` is not marked as referenced
> (nor used), so we emit an unused-using-declaration warning.
> - The use of `var2` in `bar` marks `::var2` as referenced (because it was
> named), and marks `nsp::var2` as used (because it was odr-used by the
> assignment). The `UsingShadowDecl` for `::var2` is marked as referenced, so
> we do not warn on it.
Your extended example matches my original intent. That is a good starting
point. Now I am clear on the expected behavior.
Thanks very much for your comments.
Repository:
rC Clang
https://reviews.llvm.org/D46190
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits