[clang] 0ce32a7 - Revert "[ASTMatchers] Matcher macros with params move params instead of copying"

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 27 05:51:49 PST 2020


Author: Hans Wennborg
Date: 2020-11-27T14:51:27+01:00
New Revision: 0ce32a79825f307d2f46b8a5823489a67d6d072f

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

LOG: Revert "[ASTMatchers] Matcher macros with params move params instead of copying"

This broke some clang matcher tests in 32-bit MSVC builds; see PR46781.

> Summary: Use move semantics instead of copying for AST Matchers with parameters
>
> Reviewers: aaron.ballman, gribozavr2
>
> Reviewed By: gribozavr2
>
> Subscribers: cfe-commits
>
> Tags: #clang
>
> Differential Revision: https://reviews.llvm.org/D75096

This reverts commit 3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa.

Added: 
    

Modified: 
    clang/include/clang/ASTMatchers/ASTMatchersMacros.h

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/ASTMatchers/ASTMatchersMacros.h b/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
index 45e8b1a88b81..7e01ab0c6ee9 100644
--- a/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
+++ b/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
@@ -134,8 +134,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher                           \
       : public ::clang::ast_matchers::internal::MatcherInterface<Type> {       \
   public:                                                                      \
-    explicit matcher_##DefineMatcher##OverloadId##Matcher(ParamType A##Param)  \
-        : Param(std::move(A##Param)) {}                                        \
+    explicit matcher_##DefineMatcher##OverloadId##Matcher(                     \
+        ParamType const &A##Param)                                             \
+        : Param(A##Param) {}                                                   \
     bool matches(const Type &Node,                                             \
                  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,      \
                  ::clang::ast_matchers::internal::BoundNodesTreeBuilder        \
@@ -146,13 +147,12 @@
   };                                                                           \
   }                                                                            \
   inline ::clang::ast_matchers::internal::Matcher<Type> DefineMatcher(         \
-      ParamType Param) {                                                       \
+      ParamType const &Param) {                                                \
     return ::clang::ast_matchers::internal::makeMatcher(                       \
-        new internal::matcher_##DefineMatcher##OverloadId##Matcher(            \
-            std::move(Param)));                                                \
+        new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param));    \
   }                                                                            \
-  typedef ::clang::ast_matchers::internal::Matcher<Type> (                     \
-      &DefineMatcher##_Type##OverloadId)(ParamType Param);                     \
+  typedef ::clang::ast_matchers::internal::Matcher<Type>(                      \
+      &DefineMatcher##_Type##OverloadId)(ParamType const &Param);              \
   inline bool internal::matcher_##DefineMatcher##OverloadId##Matcher::matches( \
       const Type &Node,                                                        \
       ::clang::ast_matchers::internal::ASTMatchFinder *Finder,                 \
@@ -183,9 +183,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher                           \
       : public ::clang::ast_matchers::internal::MatcherInterface<Type> {       \
   public:                                                                      \
-    matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 A##Param1,         \
-                                                 ParamType2 A##Param2)         \
-        : Param1(std::move(A##Param1)), Param2(std::move(A##Param2)) {}        \
+    matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 const &A##Param1,  \
+                                                 ParamType2 const &A##Param2)  \
+        : Param1(A##Param1), Param2(A##Param2) {}                              \
     bool matches(const Type &Node,                                             \
                  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,      \
                  ::clang::ast_matchers::internal::BoundNodesTreeBuilder        \
@@ -197,14 +197,14 @@
   };                                                                           \
   }                                                                            \
   inline ::clang::ast_matchers::internal::Matcher<Type> DefineMatcher(         \
-      ParamType1 Param1, ParamType2 Param2) {                                  \
+      ParamType1 const &Param1, ParamType2 const &Param2) {                    \
     return ::clang::ast_matchers::internal::makeMatcher(                       \
-        new internal::matcher_##DefineMatcher##OverloadId##Matcher(            \
-            std::move(Param1), std::move(Param2)));                            \
+        new internal::matcher_##DefineMatcher##OverloadId##Matcher(Param1,     \
+                                                                   Param2));   \
   }                                                                            \
-  typedef ::clang::ast_matchers::internal::Matcher<Type> (                     \
-      &DefineMatcher##_Type##OverloadId)(ParamType1 Param1,                    \
-                                         ParamType2 Param2);                   \
+  typedef ::clang::ast_matchers::internal::Matcher<Type>(                      \
+      &DefineMatcher##_Type##OverloadId)(ParamType1 const &Param1,             \
+                                         ParamType2 const &Param2);            \
   inline bool internal::matcher_##DefineMatcher##OverloadId##Matcher::matches( \
       const Type &Node,                                                        \
       ::clang::ast_matchers::internal::ASTMatchFinder *Finder,                 \
@@ -272,8 +272,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher                           \
       : public ::clang::ast_matchers::internal::MatcherInterface<NodeType> {   \
   public:                                                                      \
-    explicit matcher_##DefineMatcher##OverloadId##Matcher(ParamType A##Param)  \
-        : Param(std::move(A##Param)) {}                                        \
+    explicit matcher_##DefineMatcher##OverloadId##Matcher(                     \
+        ParamType const &A##Param)                                             \
+        : Param(A##Param) {}                                                   \
     bool matches(const NodeType &Node,                                         \
                  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,      \
                  ::clang::ast_matchers::internal::BoundNodesTreeBuilder        \
@@ -286,14 +287,15 @@
   inline ::clang::ast_matchers::internal::PolymorphicMatcherWithParam1<        \
       internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType,       \
       ReturnTypesF>                                                            \
-  DefineMatcher(ParamType Param) {                                             \
+  DefineMatcher(ParamType const &Param) {                                      \
     return ::clang::ast_matchers::internal::PolymorphicMatcherWithParam1<      \
         internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType,     \
-        ReturnTypesF>(std::move(Param));                                       \
+        ReturnTypesF>(Param);                                                  \
   }                                                                            \
   typedef ::clang::ast_matchers::internal::PolymorphicMatcherWithParam1<       \
       internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType,       \
-      ReturnTypesF> (&DefineMatcher##_Type##OverloadId)(ParamType Param);      \
+      ReturnTypesF>(&DefineMatcher##_Type##OverloadId)(                        \
+      ParamType const &Param);                                                 \
   template <typename NodeType, typename ParamT>                                \
   bool internal::                                                              \
       matcher_##DefineMatcher##OverloadId##Matcher<NodeType, ParamT>::matches( \
@@ -323,9 +325,9 @@
   class matcher_##DefineMatcher##OverloadId##Matcher                           \
       : public ::clang::ast_matchers::internal::MatcherInterface<NodeType> {   \
   public:                                                                      \
-    matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 A##Param1,         \
-                                                 ParamType2 A##Param2)         \
-        : Param1(std::move(A##Param1)), Param2(std::move(A##Param2)) {}        \
+    matcher_##DefineMatcher##OverloadId##Matcher(ParamType1 const &A##Param1,  \
+                                                 ParamType2 const &A##Param2)  \
+        : Param1(A##Param1), Param2(A##Param2) {}                              \
     bool matches(const NodeType &Node,                                         \
                  ::clang::ast_matchers::internal::ASTMatchFinder *Finder,      \
                  ::clang::ast_matchers::internal::BoundNodesTreeBuilder        \
@@ -339,15 +341,15 @@
   inline ::clang::ast_matchers::internal::PolymorphicMatcherWithParam2<        \
       internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType1,      \
       ParamType2, ReturnTypesF>                                                \
-  DefineMatcher(ParamType1 Param1, ParamType2 Param2) {                        \
+  DefineMatcher(ParamType1 const &Param1, ParamType2 const &Param2) {          \
     return ::clang::ast_matchers::internal::PolymorphicMatcherWithParam2<      \
         internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType1,    \
-        ParamType2, ReturnTypesF>(std::move(Param1), std::move(Param2));       \
+        ParamType2, ReturnTypesF>(Param1, Param2);                             \
   }                                                                            \
   typedef ::clang::ast_matchers::internal::PolymorphicMatcherWithParam2<       \
       internal::matcher_##DefineMatcher##OverloadId##Matcher, ParamType1,      \
-      ParamType2, ReturnTypesF> (&DefineMatcher##_Type##OverloadId)(           \
-      ParamType1 Param1, ParamType2 Param2);                                   \
+      ParamType2, ReturnTypesF>(&DefineMatcher##_Type##OverloadId)(            \
+      ParamType1 const &Param1, ParamType2 const &Param2);                     \
   template <typename NodeType, typename ParamT1, typename ParamT2>             \
   bool internal::matcher_##DefineMatcher##OverloadId##Matcher<                 \
       NodeType, ParamT1, ParamT2>::                                            \


        


More information about the cfe-commits mailing list