Author: Nathan James
Date: 2020-02-25T07:50:34Z
New Revision: 3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa
URL: 
https://github.com/llvm/llvm-project/commit/3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa
DIFF: 
https://github.com/llvm/llvm-project/commit/3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa.diff

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

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

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