aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/ParseExprCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2011-10-15 05:09:34 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2011-10-15 05:09:34 +0000
commit7fe6208c3fa91f835813bb78236ef5c2bbf81053 (patch)
tree2f5f5925c085d33e113c8aa57f552196e330af90 /lib/Parse/ParseExprCXX.cpp
parent8b11b5e6ce086fcaa7344bf84cffefcf4b53f9f6 (diff)
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
Diffstat (limited to 'lib/Parse/ParseExprCXX.cpp')
-rw-r--r--lib/Parse/ParseExprCXX.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index d079aa1d3d..33348a9aab 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -679,6 +679,8 @@ bool Parser::TryParseLambdaIntroducer(LambdaIntroducer &Intro) {
/// 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 @@ bool Parser::ParseUnqualifiedIdOperator(CXXScopeSpec &SS, bool EnteringContext,
// 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 @@ Parser::ParseCXXNewExpression(bool UseGlobal, SourceLocation Start) {
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();
}