From: Douglas Gregor Date: Wed, 19 Jan 2011 17:02:02 +0000 (+0000) Subject: NonTypeTemplateParmDecls always have TypeSourceInfo. There's no sense X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=61f438ac38cb7ccd40e77861b19f34553694416f;p=clang NonTypeTemplateParmDecls always have TypeSourceInfo. There's no sense in pretending otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123839 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index 76e7406c51..b4ccdd572d 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -1456,19 +1456,13 @@ Decl *TemplateDeclInstantiator::VisitNonTypeTemplateParmDecl( NonTypeTemplateParmDecl *D) { // Substitute into the type of the non-type template parameter. QualType T; - TypeSourceInfo *DI = D->getTypeSourceInfo(); - if (DI) { - DI = SemaRef.SubstType(DI, TemplateArgs, D->getLocation(), + TypeSourceInfo *DI = SemaRef.SubstType(D->getTypeSourceInfo(), TemplateArgs, D->getLocation(), D->getDeclName()); - if (DI) T = DI->getType(); - } else { - T = SemaRef.SubstType(D->getType(), TemplateArgs, D->getLocation(), - D->getDeclName()); - DI = 0; - } - if (T.isNull()) + if (!DI) return 0; + T = DI->getType(); + // Check that this type is acceptable for a non-type template parameter. bool Invalid = false; T = SemaRef.CheckNonTypeTemplateParameterType(T, D->getLocation());