https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78488
Bug ID: 78488 Summary: ICE when building call to inherited default constructor. Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric at efcs dot ca Target Milestone: --- GCC ICE's when default initializing a type T when T's default constructor is an inherited constructor. Note that this only happens when T doesn't define its own default ctor, either implicitly or explicitly. The below reproducer is rejected by GCC 5.3 and earlier. GCC 6 exits with status 1 and without producing any diagnostics or an output file, and GCC 7 segfaults. Reproducer: // g++ -std=c++1z test.cpp struct Foo { Foo() {} }; struct Bar : Foo { using Foo::Foo; Bar(void*); // Define another constructor so Foo() isn't generated. }; int main() { Bar f; }