mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-31 20:44:18 +00:00
[ASTMatchers] Document that isAnyPointer() matcher also matches Objective-C object pointers.
Summary: Add test for Objective-C object pointer matching. Reviewers: aaron.ballman Subscribers: klimek Differential Revision: http://reviews.llvm.org/D17489 llvm-svn: 262806
This commit is contained in:
parent
50cd3c4ec7
commit
40ef42a932
@ -3688,15 +3688,22 @@ AST_MATCHER(QualType, isAnyCharacter) {
|
||||
return Node->isAnyCharacterType();
|
||||
}
|
||||
|
||||
//// \brief Matches QualType nodes that are of any pointer type.
|
||||
/// \brief Matches QualType nodes that are of any pointer type; this includes
|
||||
/// the Objective-C object pointer type, which is different despite being
|
||||
/// syntactically similar.
|
||||
///
|
||||
/// Given
|
||||
/// \code
|
||||
/// int *i = nullptr;
|
||||
///
|
||||
/// @interface Foo
|
||||
/// @end
|
||||
/// Foo *f;
|
||||
///
|
||||
/// int j;
|
||||
/// \endcode
|
||||
/// varDecl(hasType(isAnyPointer()))
|
||||
/// matches "int *i", but not "int j".
|
||||
/// matches "int *i" and "Foo *f", but not "int j".
|
||||
AST_MATCHER(QualType, isAnyPointer) {
|
||||
return Node->isAnyPointerType();
|
||||
}
|
||||
|
@ -1483,6 +1483,11 @@ TEST(IsAnyPointer, MatchesPointers) {
|
||||
EXPECT_TRUE(matches("int* i = nullptr;", varDecl(hasType(isAnyPointer()))));
|
||||
}
|
||||
|
||||
TEST(IsAnyPointer, MatchesObjcPointer) {
|
||||
EXPECT_TRUE(matchesObjC("@interface Foo @end Foo *f;",
|
||||
varDecl(hasType(isAnyPointer()))));
|
||||
}
|
||||
|
||||
TEST(IsAnyPointer, ReportsNoFalsePositives) {
|
||||
EXPECT_TRUE(notMatches("int i = 0;", varDecl(hasType(isAnyPointer()))));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user