2017-01-18 Nathan Sidwell <nathan@acm.org>
PR c++/78488
* call.c (build_over_call): When checking ellipsis conversions for
an inherited ctor, make sure there is at least one conversion.
* g++.dg/cpp1z/inh-ctor37.C: New.
===================================================================
@@ -7899,6 +7899,7 @@ build_over_call (struct z_candidate *can
could handle this by open-coding the inherited constructor rather than
defining it, but let's not bother now. */
if (!cp_unevaluated_operand
+ && cand->num_convs
&& cand->convs[cand->num_convs-1]->ellipsis_p)
{
if (complain & tf_error)
===================================================================
@@ -0,0 +1,13 @@
+// { dg-do compile { target c++11 } }
+// PR 78488, seg fault with inherited ctor
+
+struct Foo { Foo() {} };
+
+struct Bar : Foo {
+ using Foo::Foo;
+ Bar(void*);
+};
+
+int main() {
+ Bar f;
+}