aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-08-02 21:36:57 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-08-02 21:36:57 +0000
commit967e5d7ebb775a93f9c200d19d557d18bf945f10 (patch)
tree3314db48c1561df1d1710aec363ceb3112ad191d
parent9f3b9d54ccbbf212591602f389ebde7923627490 (diff)
Comments: handle template paramter documentation in alias-declaration
templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161215 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AST/Comment.cpp4
-rw-r--r--test/Sema/warn-documentation.cpp12
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/AST/Comment.cpp b/lib/AST/Comment.cpp
index 15b80c6455..ecf6d2a553 100644
--- a/lib/AST/Comment.cpp
+++ b/lib/AST/Comment.cpp
@@ -194,6 +194,10 @@ void DeclInfo::fill() {
} else if (isa<ClassTemplateSpecializationDecl>(ThisDecl)) {
IsTemplateDecl = true;
IsTemplateSpecialization = true;
+ } else if (const TypeAliasTemplateDecl *TAT =
+ dyn_cast<TypeAliasTemplateDecl>(ThisDecl)) {
+ IsTemplateDecl = true;
+ TemplateParameters = TAT->getTemplateParameters();
}
IsFilled = true;
}
diff --git a/test/Sema/warn-documentation.cpp b/test/Sema/warn-documentation.cpp
index b31e480db8..44d24440f0 100644
--- a/test/Sema/warn-documentation.cpp
+++ b/test/Sema/warn-documentation.cpp
@@ -250,6 +250,18 @@ void test_tparam11();
template<int I>
void test_tparam12();
+template<typename T, typename U>
+class test_tparam13 { };
+
+/// \tparam T Aaa
+template<typename T>
+using test_tparam14 = test_tparam13<T, int>;
+
+// expected-warning@+1 {{template parameter 'U' not found in the template declaration}} expected-note@+1 {{did you mean 'T'?}}
+/// \tparam U Aaa
+template<typename T>
+using test_tparam15 = test_tparam13<T, int>;
+
// expected-warning@+1 {{empty paragraph passed to '\brief' command}}
int test1; ///< \brief\brief Aaa