Implement -Wc++98-compat warnings for the parser.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142056 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index d079aa1..33348a9 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -679,6 +679,8 @@
/// expression.
ExprResult Parser::ParseLambdaExpressionAfterIntroducer(
LambdaIntroducer &Intro) {
+ Diag(Intro.Range.getBegin(), diag::warn_cxx98_compat_lambda);
+
// Parse lambda-declarator[opt].
DeclSpec DS(AttrFactory);
Declarator D(DS, Declarator::PrototypeContext);
@@ -1743,6 +1745,7 @@
// operator "" identifier
if (getLang().CPlusPlus0x && Tok.is(tok::string_literal)) {
+ Diag(Tok.getLocation(), diag::warn_cxx98_compat_literal_operator);
if (Tok.getLength() != 2)
Diag(Tok.getLocation(), diag::err_operator_string_not_empty);
ConsumeStringToken();
@@ -2104,6 +2107,8 @@
return ExprError();
}
} else if (Tok.is(tok::l_brace) && getLang().CPlusPlus0x) {
+ Diag(Tok.getLocation(),
+ diag::warn_cxx98_compat_generalized_initializer_lists);
// FIXME: Have to communicate the init-list to ActOnCXXNew.
ParseBraceInitializer();
}