mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-01 12:43:47 +00:00
Add voidType() matcher.
Summary: Add voidType() matcher. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D6656 llvm-svn: 224250
This commit is contained in:
parent
2d67fd6d64
commit
b405c08bdb
@ -3211,6 +3211,18 @@ AST_MATCHER_FUNCTION_P_OVERLOAD(internal::BindableMatcher<TypeLoc>, loc,
|
||||
new internal::TypeLocTypeMatcher(InnerMatcher));
|
||||
}
|
||||
|
||||
/// \brief Matches type \c void.
|
||||
///
|
||||
/// Given
|
||||
/// \code
|
||||
/// struct S { void func(); };
|
||||
/// \endcode
|
||||
/// functionDecl(returns(voidType()))
|
||||
/// matches "void func();"
|
||||
AST_MATCHER(Type, voidType) {
|
||||
return Node.isVoidType();
|
||||
}
|
||||
|
||||
/// \brief Matches builtin Types.
|
||||
///
|
||||
/// Given
|
||||
|
@ -332,6 +332,7 @@ RegistryMaps::RegistryMaps() {
|
||||
REGISTER_MATCHER(valueDecl);
|
||||
REGISTER_MATCHER(varDecl);
|
||||
REGISTER_MATCHER(variableArrayType);
|
||||
REGISTER_MATCHER(voidType);
|
||||
REGISTER_MATCHER(whileStmt);
|
||||
REGISTER_MATCHER(withInitializer);
|
||||
}
|
||||
|
@ -3857,6 +3857,11 @@ TEST(TypeMatching, MatchesTypes) {
|
||||
EXPECT_TRUE(matches("struct S {};", qualType().bind("loc")));
|
||||
}
|
||||
|
||||
TEST(TypeMatching, MatchesVoid) {
|
||||
EXPECT_TRUE(
|
||||
matches("struct S { void func(); };", methodDecl(returns(voidType()))));
|
||||
}
|
||||
|
||||
TEST(TypeMatching, MatchesArrayTypes) {
|
||||
EXPECT_TRUE(matches("int a[] = {2,3};", arrayType()));
|
||||
EXPECT_TRUE(matches("int a[42];", arrayType()));
|
||||
|
Loading…
x
Reference in New Issue
Block a user