diff options
author | Samuel Benzaquen <sbenza@google.com> | 2015-12-22 20:06:40 +0000 |
---|---|---|
committer | Samuel Benzaquen <sbenza@google.com> | 2015-12-22 20:06:40 +0000 |
commit | bd3232af03bfbd2d907a78e8d8f814d7cd2204c2 (patch) | |
tree | eec937b928f1d109c3fb7ce8c260360bf506a2dd | |
parent | a61deb249ba13fbbb80a4927e0c619f54e62ee30 (diff) | |
download | bcm5719-llvm-bd3232af03bfbd2d907a78e8d8f814d7cd2204c2.tar.gz bcm5719-llvm-bd3232af03bfbd2d907a78e8d8f814d7cd2204c2.zip |
[ASTMatchers] Add booleanType() matcher.
llvm-svn: 256278
-rw-r--r-- | clang/include/clang/ASTMatchers/ASTMatchers.h | 12 | ||||
-rw-r--r-- | clang/lib/ASTMatchers/Dynamic/Registry.cpp | 1 | ||||
-rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersTest.cpp | 7 |
3 files changed, 20 insertions, 0 deletions
diff --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h index 6fcae748d82..7eebe4e411a 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchers.h +++ b/clang/include/clang/ASTMatchers/ASTMatchers.h @@ -3762,6 +3762,18 @@ AST_MATCHER_FUNCTION_P_OVERLOAD(internal::BindableMatcher<TypeLoc>, loc, new internal::TypeLocTypeMatcher(InnerMatcher)); } +/// \brief Matches type \c bool. +/// +/// Given +/// \code +/// struct S { bool func(); }; +/// \endcode +/// functionDecl(returns(boolType())) +/// matches "bool func();" +AST_MATCHER(Type, booleanType) { + return Node.isBooleanType(); +} + /// \brief Matches type \c void. /// /// Given diff --git a/clang/lib/ASTMatchers/Dynamic/Registry.cpp b/clang/lib/ASTMatchers/Dynamic/Registry.cpp index 762be25e914..5b1c5529aa4 100644 --- a/clang/lib/ASTMatchers/Dynamic/Registry.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Registry.cpp @@ -108,6 +108,7 @@ RegistryMaps::RegistryMaps() { REGISTER_MATCHER(autoType); REGISTER_MATCHER(binaryOperator); REGISTER_MATCHER(blockPointerType); + REGISTER_MATCHER(booleanType); REGISTER_MATCHER(breakStmt); REGISTER_MATCHER(builtinType); REGISTER_MATCHER(callExpr); diff --git a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp index 80f234338a3..cd18df8410b 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp @@ -4146,6 +4146,13 @@ TEST(TypeMatching, MatchesTypes) { EXPECT_TRUE(matches("struct S {};", qualType().bind("loc"))); } +TEST(TypeMatching, MatchesBool) { + EXPECT_TRUE(matches("struct S { bool func(); };", + cxxMethodDecl(returns(booleanType())))); + EXPECT_TRUE(notMatches("struct S { void func(); };", + cxxMethodDecl(returns(booleanType())))); +} + TEST(TypeMatching, MatchesVoid) { EXPECT_TRUE(matches("struct S { void func(); };", cxxMethodDecl(returns(voidType())))); |