From 4ef09de13e104754675ca53f4950536a0cb772a2 Mon Sep 17 00:00:00 2001 From: Yaron Keren Date: Sun, 22 Dec 2013 12:04:23 +0000 Subject: [PATCH] The count() function for STL datatypes returns unsigned, even where it's only bool-like 1/0 result like std::set.count(). Some of the LLVM ADT already return unsigned count(), while others return bool count(). This patch modifies SmallPtrSet, SmallSet, SparseSet count() to return unsigned instead of bool: 1 instead of true 0 instead of false More ADT to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197879 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/SmallPtrSet.h | 6 +++--- include/llvm/ADT/SmallSet.h | 6 +++--- include/llvm/ADT/SparseSet.h | 7 ++++--- include/llvm/ADT/StringMap.h | 1 + 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/llvm/ADT/SmallPtrSet.h b/include/llvm/ADT/SmallPtrSet.h index b52aebf7d55..e433c57de74 100644 --- a/include/llvm/ADT/SmallPtrSet.h +++ b/include/llvm/ADT/SmallPtrSet.h @@ -271,9 +271,9 @@ public: return erase_imp(PtrTraits::getAsVoidPointer(Ptr)); } - /// count - Return true if the specified pointer is in the set. - bool count(PtrType Ptr) const { - return count_imp(PtrTraits::getAsVoidPointer(Ptr)); + /// count - Return 1 if the specified pointer is in the set, 0 otherwise. + unsigned count(PtrType Ptr) const { + return count_imp(PtrTraits::getAsVoidPointer(Ptr)) ? 1 : 0; } template diff --git a/include/llvm/ADT/SmallSet.h b/include/llvm/ADT/SmallSet.h index ecd3843cd0a..6f36234cb4d 100644 --- a/include/llvm/ADT/SmallSet.h +++ b/include/llvm/ADT/SmallSet.h @@ -47,11 +47,11 @@ public: return isSmall() ? Vector.size() : Set.size(); } - /// count - Return true if the element is in the set. - bool count(const T &V) const { + /// count - Return 1 if the element is in the set, 0 otherwise. + unsigned count(const T &V) const { if (isSmall()) { // Since the collection is small, just do a linear search. - return vfind(V) != Vector.end(); + return vfind(V) == Vector.end() ? 0 : 1; } else { return Set.count(V); } diff --git a/include/llvm/ADT/SparseSet.h b/include/llvm/ADT/SparseSet.h index 267a340a758..ded48c5746a 100644 --- a/include/llvm/ADT/SparseSet.h +++ b/include/llvm/ADT/SparseSet.h @@ -227,10 +227,11 @@ public: return const_cast(this)->findIndex(KeyIndexOf(Key)); } - /// count - Returns true if this set contains an element identified by Key. + /// count - Returns 1 if this set contains an element identified by Key, + /// 0 otherwise. /// - bool count(const KeyT &Key) const { - return find(Key) != end(); + unsigned count(const KeyT &Key) const { + return find(Key) == end() ? 0 : 1; } /// insert - Attempts to insert a new element. diff --git a/include/llvm/ADT/StringMap.h b/include/llvm/ADT/StringMap.h index 0838ebe91f1..f22ce80df72 100644 --- a/include/llvm/ADT/StringMap.h +++ b/include/llvm/ADT/StringMap.h @@ -313,6 +313,7 @@ public: return GetOrCreateValue(Key).getValue(); } + /// count - Return 1 if the element is in the map, 0 otherwise. size_type count(StringRef Key) const { return find(Key) == end() ? 0 : 1; }