Hello,

The attached patch fixes a couple of incorrect uses of std::move as
revealed by clang-tidy.

Best regards,

Michael Sharpe
diff --git lib/AST/Type.cpp lib/AST/Type.cpp
index d98d8d7..0d0cd2e 100644
--- lib/AST/Type.cpp
+++ lib/AST/Type.cpp
@@ -1050,24 +1050,24 @@ template<typename F>
 QualType simpleTransform(ASTContext &ctx, QualType type, F &&f) {
   // Transform the type. If it changed, return the transformed result.
   QualType transformed = f(type);
   if (transformed.getAsOpaquePtr() != type.getAsOpaquePtr())
     return transformed;
 
   // Split out the qualifiers from the type.
   SplitQualType splitType = type.split();
 
   // Visit the type itself.
-  SimpleTransformVisitor<F> visitor(ctx, std::move(f));
+  SimpleTransformVisitor<F> visitor(ctx, std::forward<F>(f));
   QualType result = visitor.Visit(splitType.Ty);
   if (result.isNull())
     return result;
 
   // Reconstruct the transformed type by applying the local qualifiers
   // from the split type.
   return ctx.getQualifiedType(result, splitType.Quals);
 }
 
 } // end anonymous namespace
 
 /// Substitute the given type arguments for Objective-C type
 /// parameters within the given type, recursively.
diff --git lib/CodeGen/CGBlocks.cpp lib/CodeGen/CGBlocks.cpp
index 09911d4..50a6d61 100644
--- lib/CodeGen/CGBlocks.cpp
+++ lib/CodeGen/CGBlocks.cpp
@@ -1931,21 +1931,21 @@ template <class T>
 static T *buildByrefHelpers(CodeGenModule &CGM, const BlockByrefInfo &byrefInfo,
                             T &&generator) {
   llvm::FoldingSetNodeID id;
   generator.Profile(id);
 
   void *insertPos;
   BlockByrefHelpers *node
     = CGM.ByrefHelpersCache.FindNodeOrInsertPos(id, insertPos);
   if (node) return static_cast<T*>(node);
 
   generator.CopyHelper = buildByrefCopyHelper(CGM, byrefInfo, generator);
   generator.DisposeHelper = buildByrefDisposeHelper(CGM, byrefInfo, generator);
 
-  T *copy = new (CGM.getContext()) T(std::move(generator));
+  T *copy = new (CGM.getContext()) T(std::forward<T>(generator));
   CGM.ByrefHelpersCache.InsertNode(copy, insertPos);
   return copy;
 }
 
 /// Build the copy and dispose helpers for the given __block variable
 /// emission.  Places the helpers in the global cache.  Returns null
 /// if no helpers are required.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to