summaryrefslogtreecommitdiffstats
path: root/lib/Parse/ParseExprCXX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Parse/ParseExprCXX.cpp')
-rw-r--r--lib/Parse/ParseExprCXX.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 355503caa9..67496edf8c 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -894,11 +894,16 @@ Optional<unsigned> Parser::ParseLambdaIntroducer(LambdaIntroducer &Intro,
// to save the necessary state, and restore it later.
EnterExpressionEvaluationContext EC(Actions,
Sema::PotentiallyEvaluated);
- TryConsumeToken(tok::equal);
+ bool HadEquals = TryConsumeToken(tok::equal);
- if (!SkippedInits)
+ if (!SkippedInits) {
+ // Warn on constructs that will change meaning when we implement N3922
+ if (!HadEquals && Tok.is(tok::l_brace)) {
+ Diag(Tok, diag::warn_init_capture_direct_list_init)
+ << FixItHint::CreateInsertion(Tok.getLocation(), "=");
+ }
Init = ParseInitializer();
- else if (Tok.is(tok::l_brace)) {
+ } else if (Tok.is(tok::l_brace)) {
BalancedDelimiterTracker Braces(*this, tok::l_brace);
Braces.consumeOpen();
Braces.skipToEnd();