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);
}