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>::                                            
\


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to