diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-08-25 17:09:33 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-08-25 17:09:33 +0000 |
commit | 6080bdbec370d0d1f4202ce2d21e1ed4b090c6ff (patch) | |
tree | be8ab7eb55453588b7efd0a62ab568e3df7604b8 /clang/lib/AST/Comment.cpp | |
parent | ebbd8a9ef3824f4e5f45ed3eefb9be7ac7be1565 (diff) | |
download | bcm5719-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.cpp | 14 |
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: |