[llvm] r190708 - Add warn_unused_result to empty() on various containers.

David Blaikie dblaikie at gmail.com
Fri Sep 13 11:40:43 PDT 2013


On Fri, Sep 13, 2013 at 10:33 AM, Benjamin Kramer
<benny.kra at googlemail.com>wrote:

> Author: d0k
> Date: Fri Sep 13 12:33:24 2013
> New Revision: 190708
>
> URL: http://llvm.org/viewvc/llvm-project?rev=190708&view=rev
> Log:
> Add warn_unused_result to empty() on various containers.
>

This seems tedious (though I appreciate the work) - how bad would it be if
Clang assumed const member functions with no parameters were
warn_unused_result?


>
> empty() doesn't actually empty out the container, making this a common
> typo.
>
> Modified:
>     llvm/trunk/include/llvm/ADT/DenseMap.h
>     llvm/trunk/include/llvm/ADT/SmallPtrSet.h
>     llvm/trunk/include/llvm/ADT/SmallVector.h
>     llvm/trunk/include/llvm/ADT/ilist.h
>
> Modified: llvm/trunk/include/llvm/ADT/DenseMap.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/DenseMap.h?rev=190708&r1=190707&r2=190708&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/DenseMap.h (original)
> +++ llvm/trunk/include/llvm/ADT/DenseMap.h Fri Sep 13 12:33:24 2013
> @@ -64,7 +64,9 @@ public:
>      return const_iterator(getBucketsEnd(), getBucketsEnd(), true);
>    }
>
> -  bool empty() const { return getNumEntries() == 0; }
> +  bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const {
> +    return getNumEntries() == 0;
> +  }
>    unsigned size() const { return getNumEntries(); }
>
>    /// Grow the densemap so that it has at least Size buckets. Does not
> shrink
>
> Modified: llvm/trunk/include/llvm/ADT/SmallPtrSet.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallPtrSet.h?rev=190708&r1=190707&r2=190708&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/SmallPtrSet.h (original)
> +++ llvm/trunk/include/llvm/ADT/SmallPtrSet.h Fri Sep 13 12:33:24 2013
> @@ -71,7 +71,7 @@ protected:
>    ~SmallPtrSetImpl();
>
>  public:
> -  bool empty() const { return size() == 0; }
> +  bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const { return size() == 0; }
>    unsigned size() const { return NumElements; }
>
>    void clear() {
>
> Modified: llvm/trunk/include/llvm/ADT/SmallVector.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallVector.h?rev=190708&r1=190707&r2=190708&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/SmallVector.h (original)
> +++ llvm/trunk/include/llvm/ADT/SmallVector.h Fri Sep 13 12:33:24 2013
> @@ -53,7 +53,7 @@ public:
>      return size_t((char*)CapacityX - (char*)BeginX);
>    }
>
> -  bool empty() const { return BeginX == EndX; }
> +  bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const { return BeginX ==
> EndX; }
>  };
>
>  template <typename T, unsigned N> struct SmallVectorStorage;
>
> Modified: llvm/trunk/include/llvm/ADT/ilist.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist.h?rev=190708&r1=190707&r2=190708&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/ilist.h (original)
> +++ llvm/trunk/include/llvm/ADT/ilist.h Fri Sep 13 12:33:24 2013
> @@ -382,7 +382,9 @@ public:
>
>    // Miscellaneous inspection routines.
>    size_type max_size() const { return size_type(-1); }
> -  bool empty() const { return Head == 0 || Head == getTail(); }
> +  bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const {
> +    return Head == 0 || Head == getTail();
> +  }
>
>    // Front and back accessor functions...
>    reference front() {
> @@ -534,7 +536,7 @@ public:
>    // Functionality derived from other functions defined above...
>    //
>
> -  size_type size() const {
> +  size_type LLVM_ATTRIBUTE_UNUSED_RESULT size() const {
>      if (Head == 0) return 0; // Don't require construction of sentinel if
> empty.
>      return std::distance(begin(), end());
>    }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130913/35a86581/attachment.html>


More information about the llvm-commits mailing list