UseListShuffleVector: Remove copy constructor
[oota-llvm.git] / include / llvm / IR / UseListOrder.h
index 420e6d409bdb66f50cf74d0c0b29af950e6c05e7..33c3a018ef12ef234ed69ea92f5563ee356f77ea 100644 (file)
@@ -51,15 +51,17 @@ class UseListShuffleVector {
     X.Size = 0;
   }
 
+  UseListShuffleVector(const UseListShuffleVector &X) LLVM_DELETED_FUNCTION;
+  UseListShuffleVector &
+  operator=(const UseListShuffleVector &X) LLVM_DELETED_FUNCTION;
+
 public:
   UseListShuffleVector() : Size(0) {}
   UseListShuffleVector(UseListShuffleVector &&X) { moveUnchecked(X); }
-  UseListShuffleVector(const UseListShuffleVector &X) {
-    std::memcpy(this, &X, sizeof(UseListShuffleVector));
-    if (!isSmall()) {
-      Storage.Ptr = new unsigned[Size];
-      std::memcpy(Storage.Ptr, X.Storage.Ptr, Size * sizeof(*Storage.Ptr));
-    }
+  UseListShuffleVector &operator=(UseListShuffleVector &&X) {
+    destroy();
+    moveUnchecked(X);
+    return *this;
   }
   explicit UseListShuffleVector(size_t Size) : Size(Size) {
     if (!isSmall())