[llvm] d82e993 - [ADT] 'PointerUnion::is' returns 'bool'

Brian Gesiak via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 1 13:50:33 PST 2020


Author: Brian Gesiak
Date: 2020-02-01T16:50:20-05:00
New Revision: d82e993cd34ae6fda1eeb57c1b4d3d2629960664

URL: https://github.com/llvm/llvm-project/commit/d82e993cd34ae6fda1eeb57c1b4d3d2629960664
DIFF: https://github.com/llvm/llvm-project/commit/d82e993cd34ae6fda1eeb57c1b4d3d2629960664.diff

LOG: [ADT] 'PointerUnion::is' returns 'bool'

Summary:
The return type of 'PointerUnion::is' has been 'int' since it was first
added in March 2009, in SVN r67987, or
https://github.com/llvm/llvm-project/commit/a9c6de15fb3.

The only other change to this member function was a clang-format applied
in December 2015, in SVN r256513, or
https://github.com/llvm/llvm-project/commit/548a49aacc0.

However, since the return value is the result of a `==` comparison, an
implicit cast must be made converting the boolean result to an `int`.
Change the return type to `bool` to remove the need for such a cast.

Test Plan:
I ran llvm-project `check-all` under ASAN, no failures were reported
(other than obviously unrelated tests that were already failing in
ASAN buildbots).

Reviewers: gribozavr, gribozavr2, rsmith, bkramer, dblaikie

Subscribers: dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73836

Added: 
    

Modified: 
    llvm/include/llvm/ADT/PointerUnion.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/ADT/PointerUnion.h b/llvm/include/llvm/ADT/PointerUnion.h
index 40b7b000da40..8a5ecfce5a30 100644
--- a/llvm/include/llvm/ADT/PointerUnion.h
+++ b/llvm/include/llvm/ADT/PointerUnion.h
@@ -181,7 +181,7 @@ class PointerUnion
   explicit operator bool() const { return !isNull(); }
 
   /// Test if the Union currently holds the type matching T.
-  template <typename T> int is() const {
+  template <typename T> bool is() const {
     constexpr int Index = pointer_union_detail::TypeIndex<T, PTs...>::Index;
     static_assert(Index < sizeof...(PTs),
                   "PointerUnion::is<T> given type not in the union");


        


More information about the llvm-commits mailing list