diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-03 21:15:32 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-03 21:15:32 +0000 |
commit | 89ab7d0012ffe02a335b765eeb9b48977a5ecd79 (patch) | |
tree | efa56afcd5f2be0fbdec3449517e994710df9811 /lib/AST/Comment.cpp | |
parent | 5295b97d6a0117414a24d319d9a018191ec1d8e3 (diff) |
Comment diagnostics: warn if \returns is used in a non-function comment or if
the function returns void.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161261 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Comment.cpp')
-rw-r--r-- | lib/AST/Comment.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/AST/Comment.cpp b/lib/AST/Comment.cpp index 645aea7ee9..ac224ccecd 100644 --- a/lib/AST/Comment.cpp +++ b/lib/AST/Comment.cpp @@ -141,7 +141,7 @@ void DeclInfo::fill() { assert(!IsFilled); // Set defaults. - Kind = FunctionKind; + Kind = OtherKind; IsTemplateDecl = false; IsTemplateSpecialization = false; IsTemplatePartialSpecialization = false; @@ -170,6 +170,7 @@ void DeclInfo::fill() { Kind = FunctionKind; ParamVars = ArrayRef<const ParmVarDecl *>(FD->param_begin(), FD->getNumParams()); + ResultType = FD->getResultType(); unsigned NumLists = FD->getNumTemplateParameterLists(); if (NumLists != 0) { IsTemplateDecl = true; @@ -178,7 +179,8 @@ void DeclInfo::fill() { FD->getTemplateParameterList(NumLists - 1); } - if (K == Decl::CXXMethod) { + if (K == Decl::CXXMethod || K == Decl::CXXConstructor || + K == Decl::CXXDestructor || K == Decl::CXXConversion) { const CXXMethodDecl *MD = cast<CXXMethodDecl>(ThisDecl); IsInstanceMethod = MD->isInstance(); IsClassMethod = !IsInstanceMethod; @@ -190,6 +192,7 @@ void DeclInfo::fill() { Kind = FunctionKind; ParamVars = ArrayRef<const ParmVarDecl *>(MD->param_begin(), MD->param_size()); + ResultType = MD->getResultType(); IsInstanceMethod = MD->isInstanceMethod(); IsClassMethod = !IsInstanceMethod; break; @@ -201,6 +204,7 @@ void DeclInfo::fill() { const FunctionDecl *FD = FTD->getTemplatedDecl(); ParamVars = ArrayRef<const ParmVarDecl *>(FD->param_begin(), FD->getNumParams()); + ResultType = FD->getResultType(); TemplateParameters = FTD->getTemplateParameters(); break; } @@ -226,6 +230,7 @@ void DeclInfo::fill() { IsTemplateSpecialization = true; break; case Decl::Record: + case Decl::CXXRecord: Kind = ClassKind; break; case Decl::Var: |