Simplify PackedVector by removing user-defined special members that aren't any differ...
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Aug 2015 23:26:12 +0000 (23:26 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Aug 2015 23:26:12 +0000 (23:26 +0000)
This causes the other special members (like move and copy construction,
and move assignment) to come through for free. Some code in clang was
depending on the (deprecated, in the original code) copy ctor. Now that
there's no user-defined special members, they're all available without
any deprecation concerns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244835 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/PackedVector.h
unittests/ADT/PackedVectorTest.cpp

index 2341e89fa11bf7eda32849b4574a1997cd6e4c36..09267173fd77343d61061609da825cd8a0391058 100644 (file)
@@ -96,7 +96,7 @@ public:
     }
   };
 
-  PackedVector() { }
+  PackedVector() = default;
   explicit PackedVector(unsigned size) : Bits(size << (BitNum-1)) { }
 
   bool empty() const { return Bits.empty(); }
@@ -135,19 +135,10 @@ public:
     return Bits != RHS.Bits;
   }
 
-  const PackedVector &operator=(const PackedVector &RHS) {
-    Bits = RHS.Bits;
-    return *this;
-  }
-
   PackedVector &operator|=(const PackedVector &RHS) {
     Bits |= RHS.Bits;
     return *this;
   }
-
-  void swap(PackedVector &RHS) {
-    Bits.swap(RHS.Bits);
-  }
 };
 
 // Leave BitNum=0 undefined.
index 55b5d8d049ddd544dbcaea4bd3fa69270472a7bf..199a67043090fd3a246ac8152fe86ee52fdb1692 100644 (file)
@@ -52,18 +52,6 @@ TEST(PackedVectorTest, Operation) {
   EXPECT_FALSE(Vec == Vec2);
   EXPECT_TRUE(Vec != Vec2);
 
-  Vec2.swap(Vec);
-  EXPECT_EQ(3U, Vec.size());
-  EXPECT_FALSE(Vec.empty());
-  EXPECT_EQ(0U, Vec[0]);
-  EXPECT_EQ(0U, Vec[1]);
-  EXPECT_EQ(0U, Vec[2]);
-
-  EXPECT_EQ(2U, Vec2[0]);
-  EXPECT_EQ(0U, Vec2[1]);
-  EXPECT_EQ(1U, Vec2[2]);
-  EXPECT_EQ(3U, Vec2[3]);
-
   Vec = Vec2;
   EXPECT_TRUE(Vec == Vec2);
   EXPECT_FALSE(Vec != Vec2);