Change a couple of the Parser::Diag methods to return DiagnosticInfo
and let the clients push whatever they want into the DiagnosticInfo
instead of hard coding a few forms.  Also switch various clients to
use Diag(Tok, ...) instead of Diag(Tok.getLocation(), ...) as the
canonical form to simplify the code a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59509 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index 467eef0..32a7c0a 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -270,7 +270,7 @@
       
       if (Tok.isNot(tok::colon)) {
         Diag(Tok, diag::err_expected_colon);
-        Diag(OpToken, diag::err_matching, "?");
+        Diag(OpToken, diag::err_matching) << "?";
         Actions.DeleteExpr(LHS.Val);
         Actions.DeleteExpr(TernaryMiddle.Val);
         return ExprResult(true);
@@ -599,8 +599,8 @@
     DeclSpec DS;
     ParseCXXSimpleTypeSpecifier(DS);
     if (Tok.isNot(tok::l_paren))
-      return Diag(Tok.getLocation(), diag::err_expected_lparen_after_type,
-                  DS.getSourceRange());
+      return Diag(Tok, diag::err_expected_lparen_after_type)
+              << DS.getSourceRange();
 
     Res = ParseCXXTypeConstructExpression(DS);
     // This can be followed by postfix-expr pieces.
@@ -808,7 +808,7 @@
 
   // All of these start with an open paren.
   if (Tok.isNot(tok::l_paren)) {
-    Diag(Tok, diag::err_expected_lparen_after, BuiltinII->getName());
+    Diag(Tok, diag::err_expected_lparen_after) << BuiltinII->getName();
     return ExprResult(true);
   }