[Bug c++/92552] [10 Regression] internal compiler error: in lazily_declare_fn, at cp/method.c:3045 with -fconcepts

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 14 20:21:00 GMT 2020


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

--- Comment #9 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:08c8c973c082457a7d6192673e87475f1fdfdbef

commit r10-5949-g08c8c973c082457a7d6192673e87475f1fdfdbef
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Jan 14 13:59:54 2020 -0500

    PR c++/92590 - wrong handling of inherited default ctor.

    I thought my earlier fix for 91930 was an obvious bug fix, but apparently
an
    inherited constructor does not count as user-declared.  So this patch
    reverts that change and the other follow-on patches, and fixes 91930
    differently, by not letting the inherited default constructor hide the
    implicitly-declared default constructor.

        * class.c (add_method): A constrained inherited ctor doesn't hide an
        implicit derived ctor.

        Revert:
        PR c++/91930 - ICE with constrained inherited default ctor.
        * name-lookup.c (do_class_using_decl): Set TYPE_HAS_USER_CONSTRUCTOR
        for inherited constructor.
        PR c++/92552 - ICE with inherited constrained default ctor.
        * pt.c (instantiate_class_template_1): Copy
        TYPE_HAS_USER_CONSTRUCTOR.
        PR c++/92594 - ICE with inherited trivial default ctor.
        * method.c (trivial_fn_p): Treat an inherited default constructor
        like a normal default constructor.


More information about the Gcc-bugs mailing list