diff options
author | Jason Merrill <jason@redhat.com> | 2018-02-01 21:07:09 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-02-01 21:07:09 -0500 |
commit | fe23b12a23e357103a40fda08df33f3547f112e6 (patch) | |
tree | 1eeccbcc99f8325a3a6b6c4e7886433ffdff17e1 /gcc/cp/semantics.c | |
parent | 60a57222fe2166519b54641766bccab92fa15606 (diff) | |
download | gcc-fe23b12a23e357103a40fda08df33f3547f112e6.zip gcc-fe23b12a23e357103a40fda08df33f3547f112e6.tar.gz gcc-fe23b12a23e357103a40fda08df33f3547f112e6.tar.bz2 |
PR c++/84160 - ICE with nested variadic capture.
* lambda.c (is_capture_proxy_with_ref): New.
(insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
COMPONENT_REF.
* expr.c (mark_use): Use is_capture_proxy_with_ref.
* constexpr.c (potential_constant_expression_1): Likewise.
* semantics.c (process_outer_var_ref): Likewise.
From-SVN: r257325
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 7616034..ea92da3 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -3321,7 +3321,7 @@ process_outer_var_ref (tree decl, tsubst_flags_t complain, bool odr_use) { /* Check whether we've already built a proxy. */ tree var = decl; - while (is_normal_capture_proxy (var)) + while (is_capture_proxy_with_ref (var)) var = DECL_CAPTURED_VARIABLE (var); tree d = retrieve_local_specialization (var); |