summaryrefslogtreecommitdiff
path: root/lib/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-04-18 23:43:21 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-04-18 23:43:21 +0000
commit0c7102f070c10a261ea40700cfbb9102f642ad72 (patch)
treeb297323469011630bcd6a0b39cb3f77e6fceed86 /lib/Parse/ParseObjc.cpp
parent38dbad233bfc7906e38e028707ffe5925b9ca46c (diff)
downloadclang-0c7102f070c10a261ea40700cfbb9102f642ad72.tar.gz
clang-0c7102f070c10a261ea40700cfbb9102f642ad72.tar.bz2
clang-0c7102f070c10a261ea40700cfbb9102f642ad72.tar.xz
Objective-C++: Enable passing of modern C++11 style
initialized temporaries to objc++ methods. // rdar://12788429 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179818 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseObjc.cpp')
-rw-r--r--lib/Parse/ParseObjc.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 4adba4f5c5..23afa4ff3d 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -2501,7 +2501,14 @@ Parser::ParseObjCMessageExpressionBody(SourceLocation LBracLoc,
return ExprError();
}
- ExprResult Res(ParseAssignmentExpression());
+ ExprResult Expr;
+ if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
+ Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
+ Expr = ParseBraceInitializer();
+ } else
+ Expr = ParseAssignmentExpression();
+
+ ExprResult Res(Expr);
if (Res.isInvalid()) {
// We must manually skip to a ']', otherwise the expression skipper will
// stop at the ']' when it skips to the ';'. We want it to skip beyond