summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/DiagnosticParseKinds.td4
-rw-r--r--clang/lib/Parse/ParseExprCXX.cpp19
2 files changed, 4 insertions, 19 deletions
diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td
index 48446771ed6..7e9272945c0 100644
--- a/clang/include/clang/Basic/DiagnosticParseKinds.td
+++ b/clang/include/clang/Basic/DiagnosticParseKinds.td
@@ -641,9 +641,7 @@ def err_ctor_init_missing_comma : Error<
def err_friend_decl_defines_type : Error<
"cannot define a type in a friend declaration">;
def err_missing_whitespace_digraph : Error<
- "found '<::' after a "
- "%select{template name|const_cast|dynamic_cast|reinterpret_cast|static_cast}0"
- " which forms the digraph '<:' (aka '[') and a ':', did you mean '< ::'?">;
+ "found '<::' after a %0 which forms the digraph '<:' (aka '[') and a ':', did you mean '< ::'?">;
def ext_deleted_function : ExtWarn<
"deleted function definitions are a C++11 extension">, InGroup<CXX11>;
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp
index 42e737004b4..f5d545466af 100644
--- a/clang/lib/Parse/ParseExprCXX.cpp
+++ b/clang/lib/Parse/ParseExprCXX.cpp
@@ -24,18 +24,6 @@
using namespace clang;
-static int SelectDigraphErrorMessage(tok::TokenKind Kind) {
- switch (Kind) {
- case tok::kw_template: return 0;
- case tok::kw_const_cast: return 1;
- case tok::kw_dynamic_cast: return 2;
- case tok::kw_reinterpret_cast: return 3;
- case tok::kw_static_cast: return 4;
- default:
- llvm_unreachable("Unknown type for digraph error message.");
- }
-}
-
// Are the two tokens adjacent in the same source file?
bool Parser::areTokensAdjacent(const Token &First, const Token &Second) {
SourceManager &SM = PP.getSourceManager();
@@ -56,8 +44,7 @@ static void FixDigraph(Parser &P, Preprocessor &PP, Token &DigraphToken,
Range.setBegin(DigraphToken.getLocation());
Range.setEnd(ColonToken.getLocation());
P.Diag(DigraphToken.getLocation(), diag::err_missing_whitespace_digraph)
- << SelectDigraphErrorMessage(Kind)
- << FixItHint::CreateReplacement(Range, "< ::");
+ << Kind << FixItHint::CreateReplacement(Range, "< ::");
// Update token information to reflect their change in token type.
ColonToken.setKind(tok::coloncolon);
@@ -93,8 +80,8 @@ void Parser::CheckForTemplateAndDigraph(Token &Next, ParsedType ObjectType,
Template, MemberOfUnknownSpecialization))
return;
- FixDigraph(*this, PP, Next, SecondToken, tok::kw_template,
- /*AtDigraph*/false);
+ FixDigraph(*this, PP, Next, SecondToken, tok::annot_template_id,
+ /*AtDigraph*/ false);
}
/// \brief Emits an error for a left parentheses after a double colon.
OpenPOWER on IntegriCloud