diff options
author | Nathaniel Shead <nathanieloshead@gmail.com> | 2024-09-20 00:05:04 +1000 |
---|---|---|
committer | Nathaniel Shead <nathanieloshead@gmail.com> | 2024-09-28 09:00:31 +1000 |
commit | b9ac51a843f9dc807b00ab7f49f64968807a4ee8 (patch) | |
tree | 7534ce11573ba24cc239711f7c3d0643ecba1801 /libgcc | |
parent | cf9efe5ec14fea3ad5746fbefb22544bb9424d9d (diff) | |
download | gcc-b9ac51a843f9dc807b00ab7f49f64968807a4ee8.zip gcc-b9ac51a843f9dc807b00ab7f49f64968807a4ee8.tar.gz gcc-b9ac51a843f9dc807b00ab7f49f64968807a4ee8.tar.bz2 |
c++: Don't strip USING_DECLs when updating local bindings [PR116748]
Currently update_binding strips USING_DECLs too eagerly, leading to ICEs
in pop_local_decl as it can't find the decl it's popping in the binding
list. Let's rather try to keep the original USING_DECL around.
This also means that using59.C can point to the location of the
using-decl rather than the underlying object directly; this is in the
direction required to fix PR c++/106851 (though more work is needed to
emit properly helpful diagnostics here).
PR c++/116748
gcc/cp/ChangeLog:
* name-lookup.cc (update_binding): Maintain USING_DECLs in the
binding slots.
gcc/testsuite/ChangeLog:
* g++.dg/lookup/using59.C: Update location.
* g++.dg/lookup/using69.C: New test.
Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
Reviewed-by: Jason Merrill <jason@redhat.com>
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions