https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71446
Harald van Dijk <harald at gigawatt dot nl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |harald at gigawatt dot nl --- Comment #2 from Harald van Dijk <harald at gigawatt dot nl> --- Another test case, reduced from Chromium 70.0.3538.9 and accepted by clang: struct S { void *a; int b; }; void f(S); void g() { f({.b = 1}); } This fails with bug.cc: In function ‘void g()’: bug.cc:3:24: error: could not convert ‘{1}’ from ‘<brace-enclosed initializer list>’ to ‘S’ void g() { f({.b = 1}); } ^ The error suggests the field names are simply ignored entirely during overload resolution, which also explains the behaviour of the originally reported code.