[Bug c++/92552] [10 Regression] internal compiler error: in lazily_declare_fn, at cp/method.c:3045 with -fconcepts
jason at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 7 01:08:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92552
--- Comment #5 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Tue Jan 7 01:07:59 2020
New Revision: 279936
URL: https://gcc.gnu.org/viewcvs?rev=279936&root=gcc&view=rev
Log:
PR c++/92552 - ICE with inherited constrained default ctor.
We set TYPE_HAS_USER_CONSTRUCTOR on the template type in lookup_using_decl,
but we didn't copy it to the instantiation. Setting it in
one_inherited_ctor is too late, as that gets called after we decide whether
to set CLASSTYPE_LAZY_DEFAULT_CTOR. This change affects other testcases as
well; the changes are fixes for the other inherited constructor tests as
well.
* pt.c (instantiate_class_template_1): Copy
TYPE_HAS_USER_CONSTRUCTOR.
* class.c (one_inherited_ctor): Don't set it here.
Added:
trunk/gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor7.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/g++.dg/concepts/inherit-ctor3.C
trunk/gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor2.C
trunk/gcc/testsuite/g++.dg/template/crash7.C
trunk/gcc/testsuite/g++.old-deja/g++.pt/error2.C
More information about the Gcc-bugs
mailing list