diff options
author | Jason Merrill <jason@redhat.com> | 2018-02-19 22:39:37 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-02-19 22:39:37 -0500 |
commit | 329a89d34cedb0aec759f9c4531d2dbba7f0937b (patch) | |
tree | 6cef8708887c842622e9437122302a89f1187077 /gcc/cp/lambda.c | |
parent | c74c263c3bd8cc21c1651275c25ca23e9ea0be81 (diff) | |
download | gcc-329a89d34cedb0aec759f9c4531d2dbba7f0937b.zip gcc-329a89d34cedb0aec759f9c4531d2dbba7f0937b.tar.gz gcc-329a89d34cedb0aec759f9c4531d2dbba7f0937b.tar.bz2 |
PR c++/84429 - ICE capturing VLA.
* lambda.c (build_capture_proxy): Handle reference refs.
From-SVN: r257836
Diffstat (limited to 'gcc/cp/lambda.c')
-rw-r--r-- | gcc/cp/lambda.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index 38500b1..a0a80df 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -451,11 +451,12 @@ build_capture_proxy (tree member, tree init) { if (PACK_EXPANSION_P (init)) init = PACK_EXPANSION_PATTERN (init); - if (INDIRECT_REF_P (init)) - init = TREE_OPERAND (init, 0); - STRIP_NOPS (init); } + if (INDIRECT_REF_P (init)) + init = TREE_OPERAND (init, 0); + STRIP_NOPS (init); + gcc_assert (VAR_P (init) || TREE_CODE (init) == PARM_DECL); while (is_normal_capture_proxy (init)) init = DECL_CAPTURED_VARIABLE (init); |