DiagnosticInfo Diag(SourceLocation Loc, unsigned DiagID);
DiagnosticInfo Diag(const Token &Tok, unsigned DiagID);
- bool Diag(SourceLocation Loc, unsigned DiagID, const SourceRange &R);
- bool Diag(SourceLocation Loc, unsigned DiagID, const std::string &Msg,
- const SourceRange& R1);
/// SkipUntil - Read tokens until we get to the specified token, then consume
/// it (unless DontConsume is true). Because we cannot guarantee that the
for (unsigned i = 0, e = FieldDeclarators.size(); i != e; ++i) {
FieldDeclarator &FD = FieldDeclarators[i];
if (FD.D.getIdentifier() == 0) {
- Diag(AtLoc, diag::err_objc_property_requires_field_name,
- FD.D.getSourceRange());
+ Diag(AtLoc, diag::err_objc_property_requires_field_name)
+ << FD.D.getSourceRange();
continue;
}
// We have a declaration that looks like a functional cast; there's a high
// chance that the author intended the statement to be an expression.
// Emit a warning.
- Diag(Tok.getLocation(), diag::warn_statement_disambiguation,
- "declaration", SourceRange(Tok.getLocation(), TentativeParseLoc));
+ Diag(Tok, diag::warn_statement_disambiguation)
+ << "declaration" << SourceRange(Tok.getLocation(), TentativeParseLoc);
} else if (TPR == TPResult::False() && Tok.is(tok::kw_void)) {
// A functional cast to 'void' expression ? Warning..
- Diag(Tok.getLocation(), diag::warn_statement_disambiguation,
- "expression", SourceRange(Tok.getLocation(), TentativeParseLoc));
+ Diag(Tok, diag::warn_statement_disambiguation)
+ << "expression" << SourceRange(Tok.getLocation(), TentativeParseLoc);
}
return TPR == TPResult::True();
// Function declarator has precedence over constructor-style initializer.
// Emit a warning just in case the author intended a variable definition.
if (warnIfAmbiguous)
- Diag(Tok.getLocation(), diag::warn_parens_disambiguated_as_function_decl,
- SourceRange(Tok.getLocation(), TPLoc));
+ Diag(Tok, diag::warn_parens_disambiguated_as_function_decl)
+ << SourceRange(Tok.getLocation(), TPLoc);
return true;
}
return Diag(Tok.getLocation(), DiagID);
}
-bool Parser::Diag(SourceLocation Loc, unsigned DiagID, const std::string &Msg,
- const SourceRange& Range) {
- Diags.Report(PP.getFullLoc(Loc), DiagID) << Msg << Range;
- return true;
-}
-
-bool Parser::Diag(SourceLocation Loc, unsigned DiagID, const SourceRange &R) {
- Diags.Report(FullSourceLoc(Loc,PP.getSourceManager()), DiagID) << R;
- return true;
-}
-
-
/// MatchRHSPunctuation - For punctuation with a LHS and RHS (e.g. '['/']'),
/// this helper function matches and consumes the specified RHS token if
/// present. If not present, it emits the specified diagnostic indicating