aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/name-lookup.cc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2023-03-21 11:12:42 -0400
committerJason Merrill <jason@redhat.com>2023-05-02 16:25:49 -0400
commitf9861511a1fa0f9e386f3f7bcee84b6e3ca3c579 (patch)
treec17ac78097145dfd9d2371f7954779b2f2c4e8f1 /gcc/cp/name-lookup.cc
parenta43f3616c0069541b1f465eea67285eeeff36785 (diff)
downloadgcc-f9861511a1fa0f9e386f3f7bcee84b6e3ca3c579.zip
gcc-f9861511a1fa0f9e386f3f7bcee84b6e3ca3c579.tar.gz
gcc-f9861511a1fa0f9e386f3f7bcee84b6e3ca3c579.tar.bz2
c++: less invalidate_class_lookup_cache
In the testcase below, we push_to_top_level to instantiate f and g, and they can both use the previous_class_level cache from instantiating A<int>. Wiping the cache in pop_from_top_level is not helpful; we'll do that in pushclass if needed. template <class T> struct A { int i; void f() { i = 42; } void g() { i = 24; } }; int main() { A<int> a; a.f(); a.g(); } gcc/cp/ChangeLog: * name-lookup.cc (pop_from_top_level): Don't invalidate_class_lookup_cache.
Diffstat (limited to 'gcc/cp/name-lookup.cc')
-rw-r--r--gcc/cp/name-lookup.cc3
1 files changed, 0 insertions, 3 deletions
diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc
index 7c61bc3..8fd5733 100644
--- a/gcc/cp/name-lookup.cc
+++ b/gcc/cp/name-lookup.cc
@@ -8205,9 +8205,6 @@ pop_from_top_level (void)
auto_cond_timevar tv (TV_NAME_LOOKUP);
- /* Clear out class-level bindings cache. */
- if (previous_class_level)
- invalidate_class_lookup_cache ();
pop_class_stack ();
release_tree_vector (current_lang_base);