mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-15 20:51:35 +00:00
Make isExternC work on VarDecls too.
llvm-svn: 277712
This commit is contained in:
parent
54a5486918
commit
87e6d99487
@ -3441,6 +3441,18 @@ Usable as: Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1Funct
|
||||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1VarDecl.html">VarDecl</a>></td><td class="name" onclick="toggle('isExternC1')"><a name="isExternC1Anchor">isExternC</a></td><td></td></tr>
|
||||
<tr><td colspan="4" class="doc" id="isExternC1"><pre>Matches extern "C" function declarations.
|
||||
|
||||
Given:
|
||||
extern "C" void f() {}
|
||||
extern "C" { void g() {} }
|
||||
void h() {}
|
||||
functionDecl(isExternC())
|
||||
matches the declaration of f and g, but not the declaration h
|
||||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="http://clang.llvm.org/doxygen/classclang_1_1VarDecl.html">VarDecl</a>></td><td class="name" onclick="toggle('isTemplateInstantiation1')"><a name="isTemplateInstantiation1Anchor">isTemplateInstantiation</a></td><td></td></tr>
|
||||
<tr><td colspan="4" class="doc" id="isTemplateInstantiation1"><pre>Matches template instantiations of function, class, or static
|
||||
member variable template instantiations.
|
||||
|
@ -3342,7 +3342,8 @@ AST_MATCHER_P(FunctionDecl, returns,
|
||||
/// \endcode
|
||||
/// functionDecl(isExternC())
|
||||
/// matches the declaration of f and g, but not the declaration h
|
||||
AST_MATCHER(FunctionDecl, isExternC) {
|
||||
AST_POLYMORPHIC_MATCHER(isExternC, AST_POLYMORPHIC_SUPPORTED_TYPES(FunctionDecl,
|
||||
VarDecl)) {
|
||||
return Node.isExternC();
|
||||
}
|
||||
|
||||
|
@ -842,6 +842,12 @@ TEST(IsExternC, MatchesExternCFunctionDeclarations) {
|
||||
EXPECT_TRUE(notMatches("void f() {}", functionDecl(isExternC())));
|
||||
}
|
||||
|
||||
TEST(IsExternC, MatchesExternCVariableDeclarations) {
|
||||
EXPECT_TRUE(matches("extern \"C\" int i;", varDecl(isExternC())));
|
||||
EXPECT_TRUE(matches("extern \"C\" { int i; }", varDecl(isExternC())));
|
||||
EXPECT_TRUE(notMatches("int i;", varDecl(isExternC())));
|
||||
}
|
||||
|
||||
TEST(IsDefaulted, MatchesDefaultedFunctionDeclarations) {
|
||||
EXPECT_TRUE(notMatches("class A { ~A(); };",
|
||||
functionDecl(hasName("~A"), isDefaulted())));
|
||||
|
Loading…
x
Reference in New Issue
Block a user