[cfe-dev] Incomplete set of warnings in clang

Richard Trieu rtrieu at google.com
Mon Mar 10 12:22:38 PDT 2014


Marshall,

Equality comparisons appear to have their own subset of -Wunused-value in
-Wunused-comparison.  -Wunused-comparison checks both builtin and
overloaded == and !=, which is the two warnings you saw.  For the
relational operators, -Wunused-value does not check for overloaded
operators.  So a < comparison of int's would trigger -Wunused-value
warnings while a < comparison of iterators would not.  This looks like an
oversight from when the warning was implemented.  I think the fix is to
move the relational comparisons into -Wunused-comparison so that relational
overloads will also be warned on.

Richard.


On Mon, Mar 10, 2014 at 11:23 AM, Chandler Carruth <chandlerc at google.com>wrote:

> (CC-ing our local warnings expert...)
>
>
> On Mon, Mar 10, 2014 at 11:13 AM, Marshall Clow <mclow.lists at gmail.com>wrote:
>
>> As I was working on a libc++ issue (
>> 2263. Comparing iterators and allocator pointers with different
>> const-character), if anyone cares, I wrote the following test program:
>>
>> #include <string>
>>
>> int main() {
>>   std::string::iterator it;
>>   std::string::const_iterator cit;
>>
>>   it == cit;
>>   it != cit;
>>   it < cit;
>>   it <= cit;
>>   it > cit;
>>   it >= cit;
>> }
>>
>> I wanted to make sure that these were all legal comparisons using libc++
>> (and they are).
>> I kind of expected some compiler warnings about “unused results” or
>> something.
>>
>> What I didn’t expect was to get _two_ warnings. I figured either zero or
>> some multiple of six.
>>
>> Apparently clang doesn’t like it if you don’t use the result of == or !=,
>> but is perfectly happy with ignoring the results of >, >=, <, <=.
>>
>> Why is that?
>>
>> — Marshall
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140310/87c96714/attachment.html>


More information about the cfe-dev mailing list