[Bug c++/105223] [12 Regression] filter_memfn_lookup internal compiler error

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 12 03:57:43 GMT 2022


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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:

https://gcc.gnu.org/g:4195fced8a13422db94e179404588d9d887a036a

commit r12-8098-g4195fced8a13422db94e179404588d9d887a036a
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Apr 11 17:51:43 2022 -0400

    c++: using operator= [PR105223]

    In a template class A we normally add an implicit using A::operator= as a
    placeholder for the implicitly declared operator whose signature we don't
    know yet.  In my patch for PR92918 I stopped doing that if the class has an
    explicit operator=, but that was wrong; an operator= taking an unrelated
    type doesn't prevent the implicit declaration.

    When I was working on that patch, the change was necessary to avoid another
    regression, but apparently it is no longer needed.

            PR c++/105223
            PR c++/92918

    gcc/cp/ChangeLog:

            * class.cc (finish_struct): Always using op=.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/using31.C: New test.


More information about the Gcc-bugs mailing list