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

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy Inserts default member initializer for anonymous structs inside an anonymous union
        </td>
    </tr>

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

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

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

<pre>
    MRE:

```cpp
struct foo {
  union {
    struct {
      unsigned char flag1 : 4;
      unsigned char flag2 : 4;
    };

    unsigned char flags;
  };

  float letter_width{};
};
```

if we remove float letter_width, then clang-tidy doesn't suggest to fix [cppcoreguidelines-pro-type-member-init]

If we insert {} for flag1 or flag2, we get CE

(anonymous structs inside anonymous unions may be microsoft extension, i didn't checked)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyFUsFu2zAM_Rr7QiSwZTl2Dj6sTQf0sMt-YJAl2tYqS4FEN82-frKTrO4abIBgU9Qj-fjI1qlz8-37U1J8SbJDkt2-u-xy5PF48QTykyTonIOkerj4ACarnV07AK7AD74ZGHRvUYEchIfOiD6HWBN4UvwHx-7gkurw5_7u_RwbVlH3YjrjBIFBIvQ_TlrRMNNeA9f2TZN1Dt3BCcHj6F7xXjr2CDSgBWmE7Tek1RmUw2ATVhGEqe8xEJCDTr9BUj5EuaXz2E9aodEWw-bo3YbOR9yMOLboN9pqSsrDmsPzwkHbgP6ie3WIc7qpfDXYTCXCeiR4fPowa1YL6-x5dFO4Ti_M2SIFeH9YJh1gFGdoEUYtvQuuI8A3woh1ds6vQWl16U0OKF9QJWyfYpPvdlXNeV2VqWoKtS_2IiVNBpuVLs9LAwEUdmIyBJeGYW5YC6N_RXvu6h9c_6abTt40A9ExzOvNvsbTaxqmdivdGC_GvN5-s84_UVK86hAmDNEo67pk6dAUrCtLVfNqV-2rmtWylRkvil3BZZfzXZca0aIJTZxfwpjFEywpoh0HleqGZYzleVbldc4Lvs1w30YFctWhzHmWJTzDUWiznXlsne9T3yyU2ikuMM-MDhTeH0VYthyXcjG_mGhwvnnRlgcSlC61m4X7b-M_Mh0">