r245609 - PR24483: Delete some dead/incorrect code that triggered assertions.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 20 13:45:25 PDT 2015


Author: rsmith
Date: Thu Aug 20 15:45:25 2015
New Revision: 245609

URL: http://llvm.org/viewvc/llvm-project?rev=245609&view=rev
Log:
PR24483: Delete some dead/incorrect code that triggered assertions.

Modified:
    cfe/trunk/lib/Sema/SemaTemplate.cpp
    cfe/trunk/test/SemaTemplate/instantiate-var-template.cpp

Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=245609&r1=245608&r2=245609&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplate.cpp Thu Aug 20 15:45:25 2015
@@ -2469,25 +2469,6 @@ DeclResult Sema::ActOnVarTemplateSpecial
                                 false, Converted))
     return true;
 
-  // Check that the type of this variable template specialization
-  // matches the expected type.
-  TypeSourceInfo *ExpectedDI;
-  {
-    // Do substitution on the type of the declaration
-    TemplateArgumentList TemplateArgList(TemplateArgumentList::OnStack,
-                                         Converted.data(), Converted.size());
-    InstantiatingTemplate Inst(*this, TemplateKWLoc, VarTemplate);
-    if (Inst.isInvalid())
-      return true;
-    VarDecl *Templated = VarTemplate->getTemplatedDecl();
-    ExpectedDI =
-        SubstType(Templated->getTypeSourceInfo(),
-                  MultiLevelTemplateArgumentList(TemplateArgList),
-                  Templated->getTypeSpecStartLoc(), Templated->getDeclName());
-  }
-  if (!ExpectedDI)
-    return true;
-
   // Find the variable template (partial) specialization declaration that
   // corresponds to these arguments.
   if (IsPartialSpecialization) {

Modified: cfe/trunk/test/SemaTemplate/instantiate-var-template.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/instantiate-var-template.cpp?rev=245609&r1=245608&r2=245609&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/instantiate-var-template.cpp (original)
+++ cfe/trunk/test/SemaTemplate/instantiate-var-template.cpp Thu Aug 20 15:45:25 2015
@@ -34,3 +34,9 @@ namespace InstantiationDependent {
     static_assert(a<sizeof(sizeof(f(T())))> == 0, ""); // expected-error {{static_assert failed}}
   }
 }
+
+namespace PR24483 {
+  template<typename> struct A;
+  template<typename... T> A<T...> models;
+  template<> struct B models<>; // expected-error {{incomplete type 'struct B'}} expected-note {{forward declaration}}
+}




More information about the cfe-commits mailing list