diff options
author | Jason Merrill <jason@redhat.com> | 2023-03-21 11:12:42 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2023-05-02 16:25:49 -0400 |
commit | f9861511a1fa0f9e386f3f7bcee84b6e3ca3c579 (patch) | |
tree | c17ac78097145dfd9d2371f7954779b2f2c4e8f1 /gcc/cp/name-lookup.cc | |
parent | a43f3616c0069541b1f465eea67285eeeff36785 (diff) | |
download | gcc-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.cc | 3 |
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); |