<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/68933>68933</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            missing-field-initializers warning should NOT reporting missing designated initializers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          jamesruan
      </td>
    </tr>
</table>

<pre>
    #56628 introduce a disruptive change based on a wrong understanding about how designated initializers are meant to be used.

`missing-field-initializers` should report for user really missing some fields that may lead to potential error behavior.

Designated initializers are more like an extension to default initializer:
```
struct A {int a; int b;};
A default_init = {}; // a=0, b=0, not reporting warning
A designated_init = {.b=1}; // a=0, b=1, reporting warning now
A real_missing = {1};
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k09vozwQxj-NuYwSGTtAcuDQvFGO7172Xg14AHeNHflPs91PvzIlTapVKyFjhJ-f_TyewRD0aIlaVh1ZdSowxcn59gVnCj6hLTqn3lomZFXXYg_aRu9U6gkQlA4-XaJ-JegntCNBh4EUOAsIV-_sCMkq8iGiVdqOgJ1LESZ3BUV5V4ykQFsdNRr9h3wA9AQzoY0QHXQEKZDaMn5i_Gkdaz7rELQdN4MmozaPclZzCJNLRoGni_MRBuczw4MnNOYNVi0ENxMsgABxwggzvoEhVHnfi4tkMxTIe-ehowlftfOfDnL6zoHzBEb_IkAL9DuSDdrZjFY0YDLxUcLk3dr6LJ8h-tRHeALWHLWNgEwec_zQMXlkzSmPy8KnG_U5U4HJU5a8rwAmzkycs_jEmfgvi98n1sU1pJzHFb3VdrwDb-Y-MbdZXX5DLvPkHypYd72R8z08325hxZaPbj5SKFQr1UEesKC2rA9NuWv2O15MrZIDr5CErBvizZ6qAcu9bDqSuEfe7ArdCi5kyUshyqoRfCuGoakGpEr05VAPPdtxmlGbrTGv89b5sdAhJGrr_UHKwmBHJiz9IISlKyw_mRC5PXybNZsujYHtuNEhhjsl6mio_bo-PwJZi_T_Hz8f0rql8kVvFMmbdorxEnLFLOGPOk6p2_ZuZuKcT7G-NhfvXqiPTJyXswcmzou3vwEAAP__NBhGuA">