<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">