Use a separate diagnostic for default function argument expressions.

llvm-svn: 81062
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h
index 1c118ab..4b94477 100644
--- a/clang/lib/Sema/Sema.h
+++ b/clang/lib/Sema/Sema.h
@@ -2730,6 +2730,11 @@
       /// FIXME: Use a TemplateArgumentList
       DefaultTemplateArgumentInstantiation,
 
+      /// We are instantiating a default argument for a function.
+      /// The Entity is the ParmVarDecl, and TemplateArgs/NumTemplateArgs
+      /// provides the template arguments as specified.
+      DefaultFunctionArgumentInstantiation,
+
       /// We are substituting explicit template arguments provided for 
       /// a function template. The entity is a FunctionTemplateDecl.
       ExplicitTemplateArgumentSubstitution,
@@ -2778,7 +2783,9 @@
       case DefaultTemplateArgumentInstantiation:
       case ExplicitTemplateArgumentSubstitution:
       case DeducedTemplateArgumentSubstitution:
+      case DefaultFunctionArgumentInstantiation:
         return X.TemplateArgs == Y.TemplateArgs;
+          
       }
 
       return true;
@@ -2852,6 +2859,12 @@
                           unsigned NumTemplateArgs,
                           SourceRange InstantiationRange = SourceRange());
 
+    InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
+                          ParmVarDecl *Param,
+                          const TemplateArgument *TemplateArgs,
+                          unsigned NumTemplateArgs,
+                          SourceRange InstantiationRange = SourceRange());
+
     /// \brief Note that we have finished instantiating this template.
     void Clear();