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