<div dir="ltr">LGTM.<br><br>-Eli<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 18, 2013 at 1:29 PM, David Majnemer <span dir="ltr"><<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi eli.friedman, doug.gregor,<br>
<br>
DeclRefExpr::getDecl gives us back a ValueDecl, this isa<> check will<br>
never fire.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D1434" target="_blank">http://llvm-reviews.chandlerc.com/D1434</a><br>
<br>
Files:<br>
  include/clang/Basic/DiagnosticSemaKinds.td<br>
  lib/Sema/SemaTemplate.cpp<br>
<br>
Index: include/clang/Basic/DiagnosticSemaKinds.td<br>
===================================================================<br>
--- include/clang/Basic/DiagnosticSemaKinds.td<br>
+++ include/clang/Basic/DiagnosticSemaKinds.td<br>
@@ -2952,9 +2952,6 @@<br>
   "ignores qualifiers">;<br>
 def err_template_arg_not_decl_ref : Error<<br>
   "non-type template argument does not refer to any declaration">;<br>
-def err_template_arg_not_object_or_func_form : Error<<br>
-  "non-type template argument does not directly refer to an object or "<br>
-  "function">;<br>
 def err_template_arg_not_address_of : Error<<br>
   "non-type template argument for template parameter of pointer type %0 must "<br>
   "have its address taken">;<br>
Index: lib/Sema/SemaTemplate.cpp<br>
===================================================================<br>
--- lib/Sema/SemaTemplate.cpp<br>
+++ lib/Sema/SemaTemplate.cpp<br>
@@ -4177,14 +4177,6 @@<br>
     return true;<br>
   }<br>
<br>
-  if (!isa<ValueDecl>(DRE->getDecl())) {<br>
-    S.Diag(Arg->getLocStart(),<br>
-           diag::err_template_arg_not_object_or_func_form)<br>
-      << Arg->getSourceRange();<br>
-    S.Diag(Param->getLocation(), diag::note_template_param_here);<br>
-    return true;<br>
-  }<br>
-<br>
   ValueDecl *Entity = DRE->getDecl();<br>
<br>
   // Cannot refer to non-static data members<br>
</blockquote></div><br></div>