]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++/modules: avoid too many hidden friends in ADL
authorJason Merrill <jason@redhat.com>
Mon, 10 Nov 2025 13:02:53 +0000 (18:32 +0530)
committerJason Merrill <jason@redhat.com>
Tue, 11 Nov 2025 16:20:47 +0000 (21:50 +0530)
Most of the add_fns calls in adl_namespace_fns also call ovl_skip_hidden,
but we were forgetting that in the case of imports, which meant that for
24_iterators/const_iterator/112490.cc we were considering the
unreachable_sentinel_t hidden friend operator== and therefore failing.

gcc/cp/ChangeLog:

* name-lookup.cc (name_lookup::adl_namespace_fns): Also skip hidden
in the module case.

gcc/cp/name-lookup.cc

index ef1360464c5861d0e459fc9e3e4e1265cbab50e3..984d37c2089f2c7eac3794f52e1aed5ce7ff0609 100644 (file)
@@ -1338,6 +1338,7 @@ name_lookup::adl_namespace_fns (tree scope, bitmap imports,
                      bind = STAT_VISIBLE (bind);
                  }
 
+               bind = ovl_skip_hidden (bind);
                if (on_inst_path || visible)
                  add_fns (bind);
                else