[llvm] r214213 - UseListShuffleVector: Remove copy constructor

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Jul 29 13:45:53 PDT 2014


Author: dexonsmith
Date: Tue Jul 29 15:45:52 2014
New Revision: 214213

URL: http://llvm.org/viewvc/llvm-project?rev=214213&view=rev
Log:
UseListShuffleVector: Remove copy constructor

Remove the copy constructor added in r214178 to appease MSVC17 since it
shouldn't be called at all.  My guess is that explicitly deleting it
will make the compiler happy.  To round out the operations I've also
deleted copy assignment and added move assignment.  Otherwise no
functionality change.

Modified:
    llvm/trunk/include/llvm/IR/UseListOrder.h

Modified: llvm/trunk/include/llvm/IR/UseListOrder.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/UseListOrder.h?rev=214213&r1=214212&r2=214213&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/UseListOrder.h (original)
+++ llvm/trunk/include/llvm/IR/UseListOrder.h Tue Jul 29 15:45:52 2014
@@ -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())





More information about the llvm-commits mailing list