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>)`.

Reply via email to