[cfe-commits] PATCH: Adds -Wself-assign to Clang, but defaults it to off

Chandler Carruth chandlerc at google.com
Tue Jan 4 01:28:04 PST 2011


On Mon, Jan 3, 2011 at 11:25 PM, Chandler Carruth <chandlerc at google.com>wrote:

> On Mon, Jan 3, 2011 at 10:57 PM, Chandler Carruth <chandlerc at google.com>wrote:
>
>> Perhaps we could add this note as a follow-on when an expression statement
>>> consists of just a self-assignment?
>>>
>>
>> This is a good idea about how to key the fix-it hint. I'll submit this as
>> a follow-up, and then run it over LLVM and Clang, as it seems we aren't
>> immune to this code pattern. =D
>>
>
> I'm finding this a bit ugly to implement... Currently, the diagnostic is
> nicely isolated in the expression building part of Sema.  This is nice
> because it can catch oddities like f(x = x);, but I don't see a nice way to
> check that this is the only component of the statement. We could just emit
> the notes from a separate routine in SemaStmt.cpp, and give it the same
> location? Is that the best way to do this?
>

Here is what I ended up with. Not sure if this is the right way forward, or
there are other ways to approach matters. I have some orthogonal cleanups
queued as well, but I'll see how this shapes up first.

As a side note, the textual display for this hint is... terrible. =/ I'm
wondering if we should look at a richer text display lest these diagnostics
begin to hinder rather than help outside of an IDE.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110104/c343c22a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: emit-self-assign-fixit.patch
Type: application/octet-stream
Size: 8035 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110104/c343c22a/attachment.obj>


More information about the cfe-commits mailing list