summaryrefslogtreecommitdiffstats
path: root/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
diff options
context:
space:
mode:
authorSamuel Benzaquen <sbenza@google.com>2014-10-09 19:28:18 +0000
committerSamuel Benzaquen <sbenza@google.com>2014-10-09 19:28:18 +0000
commit96039d727b3dfb190f23027aa62ec1718255ffa7 (patch)
treef704a2afa6ad3b33eae5e80926beb1f381cdbc16 /clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
parent33860a8f09f75797226d1fee1a5af19dc49b6906 (diff)
downloadbcm5719-llvm-96039d727b3dfb190f23027aa62ec1718255ffa7.tar.gz
bcm5719-llvm-96039d727b3dfb190f23027aa62ec1718255ffa7.zip
Special case 0 and 1 matcher in makeAllOfComposite().
Summary: Remove unnecessary wrapping for the 0 and 1 matcher cases of makeAllOfComposite(). We don't need a variadic wrapper for those cases. Refactor TrueMatcher to take advandage of the new conversions between DynTypedMatcher and Matcher<T>. Also, make it a singleton. This change improves our clang-tidy related benchmarks by ~12%. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D5675 llvm-svn: 219431
Diffstat (limited to 'clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp')
-rw-r--r--clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
index ed507d57333..2a9a61b543d 100644
--- a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
+++ b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
@@ -26,7 +26,10 @@ public:
virtual ~MockSema() {}
uint64_t expectMatcher(StringRef MatcherName) {
- ast_matchers::internal::Matcher<Stmt> M = stmt();
+ // Optimizations on the matcher framework make simple matchers like
+ // 'stmt()' to be all the same matcher.
+ // Use a more complex expression to prevent that.
+ ast_matchers::internal::Matcher<Stmt> M = stmt(stmt(), stmt());
ExpectedMatchers.insert(std::make_pair(MatcherName, M));
return M.getID().second;
}
OpenPOWER on IntegriCloud