|
|
|
@ -1148,11 +1148,11 @@ ClassTemplate* Parser::WalkClassTemplate(const clang::ClassTemplateDecl* TD)
@@ -1148,11 +1148,11 @@ ClassTemplate* Parser::WalkClassTemplate(const clang::ClassTemplateDecl* TD)
|
|
|
|
|
return CT; |
|
|
|
|
|
|
|
|
|
CT = new ClassTemplate(); |
|
|
|
|
if (!TD->isThisDeclarationADefinition() && |
|
|
|
|
TD->getCanonicalDecl()->isThisDeclarationADefinition()) |
|
|
|
|
if (!TD->isThisDeclarationADefinition()) |
|
|
|
|
{ |
|
|
|
|
CT->IsIncomplete = true; |
|
|
|
|
CT->CompleteDeclaration = WalkClassTemplate(TD->getCanonicalDecl()); |
|
|
|
|
if (TD->getCanonicalDecl()->isThisDeclarationADefinition()) |
|
|
|
|
CT->CompleteDeclaration = WalkClassTemplate(TD->getCanonicalDecl()); |
|
|
|
|
} |
|
|
|
|
HandleDeclaration(TD, CT); |
|
|
|
|
|
|
|
|
@ -1374,11 +1374,11 @@ FunctionTemplate* Parser::WalkFunctionTemplate(const clang::FunctionTemplateDecl
@@ -1374,11 +1374,11 @@ FunctionTemplate* Parser::WalkFunctionTemplate(const clang::FunctionTemplateDecl
|
|
|
|
|
/*AddToNamespace=*/false); |
|
|
|
|
|
|
|
|
|
FT = new FunctionTemplate(); |
|
|
|
|
if (!TD->isThisDeclarationADefinition() && |
|
|
|
|
TD->getCanonicalDecl()->isThisDeclarationADefinition()) |
|
|
|
|
if (!TD->isThisDeclarationADefinition()) |
|
|
|
|
{ |
|
|
|
|
FT->IsIncomplete = true; |
|
|
|
|
FT->CompleteDeclaration = WalkFunctionTemplate(TD->getCanonicalDecl()); |
|
|
|
|
if (TD->getCanonicalDecl()->isThisDeclarationADefinition()) |
|
|
|
|
FT->CompleteDeclaration = WalkFunctionTemplate(TD->getCanonicalDecl()); |
|
|
|
|
} |
|
|
|
|
HandleDeclaration(TD, FT); |
|
|
|
|
|
|
|
|
|