diff options
author | Jason Merrill <jason@redhat.com> | 2022-01-26 16:42:57 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2022-02-01 14:14:12 -0500 |
commit | 8a3789786205376e3ba19fdefadd8937e8ac534e (patch) | |
tree | 1e19312473196efe99eb7723c4e0ef3577b68b4d /libcpp | |
parent | b649071d4b3490aa43c6c2212312ace304c9ff1c (diff) | |
download | gcc-8a3789786205376e3ba19fdefadd8937e8ac534e.zip gcc-8a3789786205376e3ba19fdefadd8937e8ac534e.tar.gz gcc-8a3789786205376e3ba19fdefadd8937e8ac534e.tar.bz2 |
c++: lambda in template default argument [PR103186]
The problem with this testcase was that since my patch for PR97900 we
weren't preserving DECL_UID identity for parameters of instantiations of
templated functions, so using those parameters as the keys for the
defarg_inst map broke. I think this was always fragile given the
possibility of redeclarations, so instead of reverting that change let's
switch to keying off the function.
Memory use compiling stdc++.h is not noticeably different.
PR c++/103186
gcc/cp/ChangeLog:
* pt.cc (defarg_inst): Use tree_vec_map_cache_hasher.
(defarg_insts_for): New.
(tsubst_default_argument): Adjust.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/lambda/lambda-defarg10.C: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions