[ASTMatcher] Add isStaticStorageClass matcher for varDecl and functionDecl.
Reviewers: klimek
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D24821
llvm-svn: 282415
diff --git a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
index 1527eac..5834211 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
@@ -848,6 +848,14 @@
EXPECT_TRUE(notMatches("int i;", varDecl(isExternC())));
}
+TEST(IsStaticStorageClass, MatchesStaticDeclarations) {
+ EXPECT_TRUE(
+ matches("static void f() {}", functionDecl(isStaticStorageClass())));
+ EXPECT_TRUE(matches("static int i = 1;", varDecl(isStaticStorageClass())));
+ EXPECT_TRUE(notMatches("int i = 1;", varDecl(isStaticStorageClass())));
+ EXPECT_TRUE(notMatches("void f() {}", functionDecl(isStaticStorageClass())));
+}
+
TEST(IsDefaulted, MatchesDefaultedFunctionDeclarations) {
EXPECT_TRUE(notMatches("class A { ~A(); };",
functionDecl(hasName("~A"), isDefaulted())));