https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71446
--- Comment #1 from Roman Perepelitsa <roman.perepelitsa at gmail dot com> --- The same bug can lead to incorrect behaviour at run time. #include <stdio.h> #include <initializer_list> struct S { int value; }; void F(S) { puts("right"); } void F(std::initializer_list<int>) { puts("wrong"); } int main() { F({.value = 0}); } Should print "right" but actually prints "wrong".