summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Comment.cpp
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2016-08-25 17:09:33 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2016-08-25 17:09:33 +0000
commit6080bdbec370d0d1f4202ce2d21e1ed4b090c6ff (patch)
treebe8ab7eb55453588b7efd0a62ab568e3df7604b8 /clang/lib/AST/Comment.cpp
parentebbd8a9ef3824f4e5f45ed3eefb9be7ac7be1565 (diff)
downloadbcm5719-llvm-6080bdbec370d0d1f4202ce2d21e1ed4b090c6ff.tar.gz
bcm5719-llvm-6080bdbec370d0d1f4202ce2d21e1ed4b090c6ff.zip
[Sema][Comments] Add support for TypeAliasTemplate
Emit proper diagnostics when -Wdocumentation is used with constructs such as: template<typename T> using fn = int(T aaa, int ccc); Previously clang wouldn't recognize the function and complain with 'comment that is not attached to a function declaration'. Differential Revision: https://reviews.llvm.org/D23860 rdar://problem/27300695 llvm-svn: 279754
Diffstat (limited to 'clang/lib/AST/Comment.cpp')
-rw-r--r--clang/lib/AST/Comment.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/AST/Comment.cpp b/clang/lib/AST/Comment.cpp
index 307104224a6..7a7d3dd8304 100644
--- a/clang/lib/AST/Comment.cpp
+++ b/clang/lib/AST/Comment.cpp
@@ -310,6 +310,20 @@ void DeclInfo::fill() {
Kind = TypedefKind;
TemplateKind = Template;
TemplateParameters = TAT->getTemplateParameters();
+ TypeAliasDecl *TAD = TAT->getTemplatedDecl();
+ if (!TAD)
+ break;
+
+ const TypeSourceInfo *TSI = TAD->getTypeSourceInfo();
+ if (!TSI)
+ break;
+ TypeLoc TL = TSI->getTypeLoc().getUnqualifiedLoc();
+ FunctionTypeLoc FTL;
+ if (getFunctionTypeLoc(TL, FTL)) {
+ Kind = FunctionKind;
+ ParamVars = FTL.getParams();
+ ReturnType = FTL.getReturnLoc().getType();
+ }
break;
}
case Decl::Enum:
OpenPOWER on IntegriCloud