https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92918

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jason Merrill
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:decd38f99dd05eb54ddcaee7c52f21a56a844613

commit r10-9849-gdecd38f99dd05eb54ddcaee7c52f21a56a844613
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Apr 7 14:55:48 2021 -0400

    c++: using overloaded with local decl [PR92918]

    The problem here was that the lookup for 'impl' when parsing the template
    only found the using-declaration, not the member function declaration.

    This happened because when trying to add the member function declaration,
    push_class_level_binding_1 saw that the current binding was a USING_DECL
and
    the new value is an overload, and decided to just return success.

    That 'return true' dates back to r69921.  In
    https://gcc.gnu.org/pipermail/gcc-patches/2003-July/110632.html Nathan
    mentions that we only push dependent USING_DECLs, which is no longer the
    case; now that we retain more USING_DECLs, handling this case like the
other
    overloaded function cases seems like the obvious solution.

    gcc/cp/ChangeLog:

            PR c++/92918
            * name-lookup.c (push_class_level_binding_1): Do overload a new
            function with a previous using-declaration.

    gcc/testsuite/ChangeLog:

            PR c++/92918
            * g++.dg/lookup/using66.C: New test.

Reply via email to