diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:21 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:21 +0000 |
commit | fdc82ccb3f2b23a89e7002fe8238e1422b00f96a (patch) | |
tree | f189aa0a3010e0eb212970b8eadf0a8b098985ea /lib/Parse | |
parent | 6694ed095d6b27a2c92ec4fd63664fcd88a05749 (diff) | |
download | src-fdc82ccb3f2b23a89e7002fe8238e1422b00f96a.tar.gz src-fdc82ccb3f2b23a89e7002fe8238e1422b00f96a.zip |
Vendor import of clang trunk r291476:vendor/clang/clang-trunk-r291476
Notes
Notes:
svn path=/vendor/clang/dist/; revision=311820
svn path=/vendor/clang/clang-trunk-r291476/; revision=311821; tag=vendor/clang/clang-trunk-r291476
Diffstat (limited to 'lib/Parse')
-rw-r--r-- | lib/Parse/ParseDecl.cpp | 7 | ||||
-rw-r--r-- | lib/Parse/ParseInit.cpp | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index ba24adefe6b0..833d93e4548a 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -306,10 +306,11 @@ unsigned Parser::ParseAttributeArgsCommon( // Parse the non-empty comma-separated list of expressions. do { - bool ShouldEnter = attributeParsedArgsUnevaluated(*AttrName); + bool Uneval = attributeParsedArgsUnevaluated(*AttrName); EnterExpressionEvaluationContext Unevaluated( - Actions, Sema::Unevaluated, /*LambdaContextDecl=*/nullptr, - /*IsDecltype=*/false, ShouldEnter); + Actions, Uneval ? Sema::Unevaluated : Sema::ConstantEvaluated, + /*LambdaContextDecl=*/nullptr, + /*IsDecltype=*/false); ExprResult ArgExpr( Actions.CorrectDelayedTyposInExpr(ParseAssignmentExpression())); diff --git a/lib/Parse/ParseInit.cpp b/lib/Parse/ParseInit.cpp index 4a68942f6d2c..fa6b75daed92 100644 --- a/lib/Parse/ParseInit.cpp +++ b/lib/Parse/ParseInit.cpp @@ -404,6 +404,10 @@ ExprResult Parser::ParseBraceInitializer() { return Actions.ActOnInitList(LBraceLoc, None, ConsumeBrace()); } + // Enter an appropriate expression evaluation context for an initializer list. + EnterExpressionEvaluationContext EnterContext( + Actions, EnterExpressionEvaluationContext::InitList); + bool InitExprsOk = true; while (1) { |