c++: constexpr and lambda capture [PR90212]
authorJason Merrill <jason@redhat.com>
Tue, 5 May 2020 21:39:19 +0000 (17:39 -0400)
committerJason Merrill <jason@redhat.com>
Tue, 5 May 2020 21:39:31 +0000 (17:39 -0400)
commit04b89192ace3a766a17374d5bef8fb19d9be2d7c
tree5311f78e69d7c223b1fbbee8f33d64a0f3a351f3
parentd0aed8d5ba77e0756f3c9ebcd65eba1bfb11f24b
c++: constexpr and lambda capture [PR90212]

This is the same issue as PR86429, just in potential_constant_expression_1
rather than cxx_eval_constant_expression.  As in that case, when we're
trying to evaluate a constant expression within a lambda, we don't have a
constant closure object to refer to, but we can try to refer directly to the
captured variable.

gcc/cp/ChangeLog
2020-05-05  Jason Merrill  <jason@redhat.com>

PR c++/90212
* constexpr.c (potential_constant_expression_1): In a lambda
function, consider a captured variable directly.
gcc/cp/ChangeLog
gcc/cp/constexpr.c
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-constexpr2.C [new file with mode: 0644]