mirror of https://github.com/microsoft/clang.git
[Index/DocComments] When cloning a full comment, pick the template parameters from the original FullComment,
if the parameters are not already set (e.g. because it is a typedef). Fixes crash of rdar://16128173 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207382 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
68dfabb403
commit
22ede254f8
|
@ -422,6 +422,8 @@ comments::FullComment *ASTContext::cloneFullComment(comments::FullComment *FC,
|
|||
ThisDeclInfo->IsFilled = false;
|
||||
ThisDeclInfo->fill();
|
||||
ThisDeclInfo->CommentDecl = FC->getDecl();
|
||||
if (!ThisDeclInfo->TemplateParameters)
|
||||
ThisDeclInfo->TemplateParameters = FC->getDeclInfo()->TemplateParameters;
|
||||
comments::FullComment *CFC =
|
||||
new (*this) comments::FullComment(FC->getBlocks(),
|
||||
ThisDeclInfo);
|
||||
|
|
|
@ -67,3 +67,18 @@ void func_template_1(T AAA);
|
|||
template<template<template<typename CCC> class DDD, class BBB> class AAA>
|
||||
void func_template_2();
|
||||
// FIXME: There is not Declaration field in the generated output.
|
||||
|
||||
namespace rdar16128173 {
|
||||
// CHECK: <Declaration>template <class PtrTy> class OpaquePtr {}</Declaration>
|
||||
|
||||
/// \brief Wrapper for void* pointer.
|
||||
/// \tparam PtrTy Either a pointer type like 'T*' or a type that behaves like
|
||||
/// a pointer.
|
||||
template <class PtrTy>
|
||||
class OpaquePtr {};
|
||||
|
||||
// CHECK: <Declaration>typedef OpaquePtr<int> DeclGroupPtrTy</Declaration>
|
||||
typedef OpaquePtr<int> DeclGroupPtrTy;
|
||||
|
||||
DeclGroupPtrTy blah;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue