https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71446
Bug ID: 71446 Summary: Incorrect overload resolution when using designated initializers Product: gcc Version: 5.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roman.perepelitsa at gmail dot com Target Milestone: --- Actual behaviour: the following program compiles. Expected behaviour: doesn't compile. #include <initializer_list> struct S { int value; }; int F(S); char* F(std::initializer_list<int>); char* p = F({.value = 0}); The compiler should either resolve `F({.value = 0})` as `int F(S)` or generate a `sorry, not implemented` error. It shouldn't resolve it as `char* F(std::initializer_list<int>)`.