From 330f0887d6dc98911f3913bb228d5c3592297b6d Mon Sep 17 00:00:00 2001 From: Jan Korous Date: Tue, 10 Oct 2017 21:09:49 +0000 Subject: [PATCH] Fix indexer crash for default template template parameter value rdar://33058798 Differential Revision: https://reviews.llvm.org/D38755 llvm-svn: 315367 --- clang/lib/Index/IndexDecl.cpp | 3 +-- clang/test/Index/index-template-template-param.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 clang/test/Index/index-template-template-param.cpp diff --git a/clang/lib/Index/IndexDecl.cpp b/clang/lib/Index/IndexDecl.cpp index ee28ef737d99..2704e6da9507 100644 --- a/clang/lib/Index/IndexDecl.cpp +++ b/clang/lib/Index/IndexDecl.cpp @@ -666,7 +666,6 @@ public: } bool VisitTemplateDecl(const TemplateDecl *D) { - // FIXME: Template parameters. // Index the default values for the template parameters. const NamedDecl *Parent = D->getTemplatedDecl(); @@ -683,7 +682,7 @@ public: } else if (const auto *TTPD = dyn_cast(TP)) { if (TTPD->hasDefaultArgument()) handleTemplateArgumentLoc(TTPD->getDefaultArgument(), Parent, - /*DC=*/nullptr); + TP->getLexicalDeclContext()); } } } diff --git a/clang/test/Index/index-template-template-param.cpp b/clang/test/Index/index-template-template-param.cpp new file mode 100644 index 000000000000..af1c4634adb5 --- /dev/null +++ b/clang/test/Index/index-template-template-param.cpp @@ -0,0 +1,7 @@ +// RUN: c-index-test -index-file %s -x objective-c++ | FileCheck %s + +template class Template1 {}; + +template