njames93 created this revision. njames93 added reviewers: aaron.ballman, steveire, klimek. njames93 requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Forwarding these means that if an r-value reference is passed, the matcher will be moved. However it appears this happens for each mapped node matcher, resulting in use-after-move issues. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D98497 Files: clang/include/clang/ASTMatchers/ASTMatchersInternal.h Index: clang/include/clang/ASTMatchers/ASTMatchersInternal.h =================================================================== --- clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -1386,8 +1386,7 @@ internal::DynTypedMatcher::VO_AnyOf}, applyMatcher( [&](auto... Matcher) { - return std::make_tuple(Matcher( - std::forward<decltype(InnerMatcher)>(InnerMatcher)...)...); + return std::make_tuple(Matcher(InnerMatcher...)...); }, std::tuple< VariadicDynCastAllOfMatcher<CladeType, MatcherTypes>...>())));
Index: clang/include/clang/ASTMatchers/ASTMatchersInternal.h =================================================================== --- clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -1386,8 +1386,7 @@ internal::DynTypedMatcher::VO_AnyOf}, applyMatcher( [&](auto... Matcher) { - return std::make_tuple(Matcher( - std::forward<decltype(InnerMatcher)>(InnerMatcher)...)...); + return std::make_tuple(Matcher(InnerMatcher...)...); }, std::tuple< VariadicDynCastAllOfMatcher<CladeType, MatcherTypes>...>())));
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits