<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 18, 2016 at 11:08 AM, Reid Kleckner via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">rnk added a comment.<br>
<br>
I'm not sure your example is in scope for -Wshadow, though. Any function call that takes a non-const reference to the parameter could modify it.</blockquote><div><br></div><div>Sure - my argument is that we should whitelist the common cases & this is one of them.<br><br>I'm not sure what implementation strategy you have in mind/which false positives it would cause. I didn't have any particular strategy in mind when I pointed out gap.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> I guess I'm thinking something like:<br>
<br>
  void trim_in_place(std::string &s);<br>
  struct A {<br>
    std::string s;<br>
    A(std::string s) : s(s) { trim_in_place(s); }<br></blockquote><div><br></div><div>Are you suggesting we should or shouldn't warn here? Seems like we should & with your changes we don't.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  };<br>
<br>
I think if we try to match that we'll have too many false positives. </blockquote><div><br></div><div>I'm worried about false negatives around anything that isn't guaranteed to change the parameter - that seems like we're opening a pretty big hole.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I think your example would be better caught by something like -Wconsumed that looks for uses of objects that have been moved-from. That warning won't be confused by shadowing and will give a better diagnostic anyway.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<a href="http://reviews.llvm.org/D18271" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18271</a><br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div></div>