forked from OSchip/llvm-project
[cxx1z-constexpr-lambda] [NFC] Add a FIXME to reinstate certain restrictions on constexpr lambdas from appearing within function-signatures (CWG1607)
For further background, see Richard's comments: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20170109/181998.html A patch to fix this is being worked on. Thanks! llvm-svn: 291439
This commit is contained in:
parent
74f27dc91b
commit
20f0cf9767
|
@ -13118,7 +13118,13 @@ void Sema::PopExpressionEvaluationContext() {
|
|||
// evaluate [...] a lambda-expression.
|
||||
D = diag::err_lambda_in_constant_expression;
|
||||
}
|
||||
|
||||
// C++1z allows lambda expressions as core constant expressions.
|
||||
// FIXME: In C++1z, reinstate the restrictions on lambda expressions (CWG
|
||||
// 1607) from appearing within template-arguments and array-bounds that
|
||||
// are part of function-signatures. Be mindful that P0315 (Lambdas in
|
||||
// unevaluated contexts) might lift some of these restrictions in a
|
||||
// future version.
|
||||
if (Rec.Context != ConstantEvaluated || !getLangOpts().CPlusPlus1z)
|
||||
for (const auto *L : Rec.Lambdas)
|
||||
Diag(L->getLocStart(), D);
|
||||
|
|
Loading…
Reference in New Issue