[PATCH] SemaLookup.cpp wrong boolean test

Yaron Keren yaron.keren at gmail.com
Sun Nov 24 05:21:27 PST 2013


Hi,

std::set count() indeed returns unsigned 0 or 1 only, so it makes sense for
SmallSet to do the same.

Regarding the patch,  the original code

 return Set.count(V);

should work without the ternary operator as it returns the std::set count()
unsigned 0/1 result which is exactly what we want.

Looking around in ADT,  some other count( are already patched like
MapVector and StringMap while others are still "bool count(" :

  DenseMap, DenseSet, ScopedHashTable, SmallPtrSet, SparseSet, ValueMap

To be consistent with STL and the already-patched ADT, shouldn't we patch
all of them?

Diagnostics - the more the better, at least for me.

Yaron



2013/11/24 Alp Toker <alp at nuanti.com>

>
> On 01/10/2013 19:25, Yaron Keren wrote:
>
>> In SemaLookup.cpp, line 4102 the test is somewhat wrong, as count
>> (surprisingly given its name) return a boolean and not an integer.
>>
>> locs->second.count(TypoName.getLoc()) > 0)
>>
>> A patch is attached.
>>
>
> Aaron fixed this in r192043.
>
>
>
>> I think this count function should be renamed to exists to better reflect
>> its function.
>>
>
> For better or worse count() is what STL templates expect, so best not to
> change that.
>
> It could however return an unsigned integral type, and I've attached a
> patch to do that, using unsigned rather than size_t to match
> SmallSet::size(). LGTY?
>
> Also, MSVC diags on inequality comparison with bool, wonder if that would
> be nice to have in clang (in fact I thought this kind of comparison range
> check already existed, weird.)
>
> Alp.
>
>
>
>
>
>> Yaron
>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
> --
> http://www.nuanti.com
> the browser experts
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131124/a7e10420/attachment.html>


More information about the cfe-commits mailing list