aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/lambda.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-02-19 22:39:37 -0500
committerJason Merrill <jason@gcc.gnu.org>2018-02-19 22:39:37 -0500
commit329a89d34cedb0aec759f9c4531d2dbba7f0937b (patch)
tree6cef8708887c842622e9437122302a89f1187077 /gcc/cp/lambda.c
parentc74c263c3bd8cc21c1651275c25ca23e9ea0be81 (diff)
downloadgcc-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.c7
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);