PR c++/91930 - ICE with constrained inherited default ctor.
authorJason Merrill <jason@redhat.com>
Mon, 14 Oct 2019 20:13:49 +0000 (16:13 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 14 Oct 2019 20:13:49 +0000 (16:13 -0400)
commitac308262f344153d472b16c85cc1c3036ce43308
tree21516f4b635028cee88b7647e3697a39de8158b2
parent10aabe339a9eec4e81fbc56cacad7b532b33d20c
PR c++/91930 - ICE with constrained inherited default ctor.

The testcase was crashing because lazily_declare_fn was failing to add a
defaulted constructor, because the implicit declaration was less constrained
than the inherited default constructor.  But when we have an inherited
constructor, we shouldn't be trying to declare a default constructor in the
first place, because it counts as "a user-declared constructor".  With that
fixed I needed to adjust a couple of inherited constructor testcases that
previously had been diagnosing the default constructor as deleted rather
than not declared.

* name-lookup.c (do_class_using_decl): Set TYPE_HAS_USER_CONSTRUCTOR
for inherited constructor.

From-SVN: r276968
gcc/cp/ChangeLog
gcc/cp/name-lookup.c
gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C
gcc/testsuite/g++.dg/cpp1z/inh-ctor22.C
gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor6.C [new file with mode: 0644]