================
Comment at: include/clang/Basic/DiagnosticParseKinds.td:592
@@ -591,2 +591,3 @@
 def err_expected_template_parameter : Error<"expected template parameter">;
+def err_missed_templ_params : Error<"template parameter list is missed">;
 
----------------
Maybe "missing template parameter list in %select{class|struct|union}0 template 
definition", and rename to something like err_template_missing_parameters. 
But... if the 'template' keyword is just spurious here, this might still be 
confusing. Maybe we should just say "unexpected 'template' keyword before 
%select{class|struct|union}0 definition"?

================
Comment at: lib/Parse/ParseDeclCXX.cpp:1541-1542
@@ -1539,1 +1540,4 @@
+             TUK == Sema::TUK_Definition) {
+    if (!TemplateParams)
+      Diag (TemplateInfo.TemplateLoc, diag::err_missed_templ_params);
   } else {
----------------
Is it possible for TemplateParams to be non-null for an ExplicitInstantiation?

If we expect this to happen due to a missing template parameter list, we're not 
going to recover very well here -- the class body is going to have a bunch of 
undeclared identifiers in it, and later uses of the class template are going to 
hit parse errors, because we won't treat the class name as a template name.


http://llvm-reviews.chandlerc.com/D731
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to