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