aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-03-05 23:20:29 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-03-05 23:20:29 +0000
commiteb8f69f094e95d0132e4a6817a2111ad188ab087 (patch)
treea5599f242ab67ab38df233e3b03214cd6d9bf9f8
parent693fdfa069b74ffe1f79caa3c9ea8754555d29bd (diff)
fix a missing check in my last patch.
// rdar://13094352 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176529 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/CommentSema.h1
-rw-r--r--lib/AST/CommentSema.cpp14
2 files changed, 12 insertions, 3 deletions
diff --git a/include/clang/AST/CommentSema.h b/include/clang/AST/CommentSema.h
index 8eb49f65ba..1d8112fa56 100644
--- a/include/clang/AST/CommentSema.h
+++ b/include/clang/AST/CommentSema.h
@@ -206,6 +206,7 @@ public:
void resolveParamCommandIndexes(const FullComment *FC);
bool isFunctionDecl();
+ bool isAnyFunctionDecl();
bool isFunctionPointerVarDecl();
bool isObjCMethodDecl();
bool isObjCPropertyDecl();
diff --git a/lib/AST/CommentSema.cpp b/lib/AST/CommentSema.cpp
index 23e27a3fe5..a834bb4b03 100644
--- a/lib/AST/CommentSema.cpp
+++ b/lib/AST/CommentSema.cpp
@@ -94,9 +94,12 @@ void Sema::checkFunctionDeclVerbatimLine(const BlockCommandComment *Comment) {
return;
StringRef Name = Info->Name;
unsigned DiagKind = llvm::StringSwitch<unsigned>(Name)
- .Case("function", diag::warn_doc_function_not_attached_to_a_function_decl)
- .Case("method", diag::warn_doc_method_not_attached_to_a_objc_method_decl)
- .Case("callback", diag::warn_doc_callback_not_attached_to_a_function_ptr_decl)
+ .Case("function", !isAnyFunctionDecl() ?
+ diag::warn_doc_function_not_attached_to_a_function_decl : 0)
+ .Case("method", !isObjCMethodDecl() ?
+ diag::warn_doc_method_not_attached_to_a_objc_method_decl : 0)
+ .Case("callback", !isFunctionPointerVarDecl() ?
+ diag::warn_doc_callback_not_attached_to_a_function_ptr_decl : 0)
.Default(0);
if (DiagKind)
@@ -691,6 +694,11 @@ bool Sema::isFunctionDecl() {
return ThisDeclInfo->getKind() == DeclInfo::FunctionKind;
}
+bool Sema::isAnyFunctionDecl() {
+ return isFunctionDecl() && ThisDeclInfo->CurrentDecl &&
+ isa<FunctionDecl>(ThisDeclInfo->CurrentDecl);
+}
+
bool Sema::isObjCMethodDecl() {
return isFunctionDecl() && ThisDeclInfo->CurrentDecl &&
isa<ObjCMethodDecl>(ThisDeclInfo->CurrentDecl);