https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78137
Bug ID: 78137 Summary: [C++1z] braced initializer in defaulted function argument causes ICE Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: eric.niebler at gmail dot com Target Milestone: --- With -std=gnu++1z, the following code ICEs the compiler: ``` struct S {}; template <class T = S> void foo(T t = {}) {} int main() { foo(); } ``` Result: test.cpp: In function ‘int main()’: test.cpp:6:7: internal compiler error: in build_over_call, at cp/call.c:7847 foo(); ^ The same code compiles successfully with -std=gnu++14.