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.

Reply via email to