https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89297
Bug ID: 89297 Summary: ICE: unexpected expression 'id' of kind overload Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: flast at flast dot jp Target Milestone: --- ICE caused by list-initializer within template function that contains call of overloads, like following. ``` int id(int v) { return v; } float id(float v) { return v; } template <typename> int foo(int v) { return int{id(v)}; // ICE on here } ``` https://wandbox.org/permlink/XtHobAXA7lQ1jPTy I encountered this issue after upgrade from 8 to 9, so I think it's a 9's regression.