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

    <tr>
        <th>Summary</th>
        <td>
            [Analyzer] False positive uninitialised member when brace initialization used
        </td>
    </tr>

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

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

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

<pre>
    The following code produces an analyzer warning that member_pointer is garbage or undefined:

```
class One
{
public:
        char* member_pointer = nullptr;
};

class Two
{
public:
        typedef enum
        {
                nameNone = 1,
                nameTwo = 2,
                
        } Name;
        const Name member_name = nameNone;
        One member_one;
};

char* Test()
{
        Two* two = new Two{ Two::nameTwo };
        auto pointer = two->member_one.member_pointer; // reports assigned value is garbage or undefined
        return pointer;
}
```

This looks incorrect because default initialisation is done on any members not initialised by the brace initializer:
https://en.cppreference.com/w/cpp/language/aggregate_initialization#Implicitly_initialized_elements

I've confirmed member_pointer in the code above is initialised to zero when testing with godbolt.org using GCC/CLang/MSVC

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVF2PqzYQ_TXmZbQRMZsFHnhINqW6UnvvQ6O-rvwxgFtjI38EZX99BWETktuqEgLjGc85ZzwzzHvVGsSK7A5kd0xYDJ11lZRFwq28VKcOobFa21GZFoSVCIOzMgr0wAwww_TlEx2MzJnJI3QsQI89R_cxWGUCOlAeWuY4axGsg2gkNsqgJNmepEeSfr3f0uWZf4Vm3sMPg4s1P1wXQ-RaidXZUnTMEbp_RiXZEUzUegiOZIevKMf7egVzGu3_woTLgBIbQBP72-bNf1qnpWE9frcGZ_Atoe_PxtNoZxt9sq0CHuE763FFsxTW-DDvfmmcQl0FLoBr9x_m5vdg-Vn7krgT-kBoQWj5lASSllNm6B7CwtvgOCcrP8yfbE-y_U3XA0DJYrCwvoww2heS_XKntnm8MZIdgNCa0BocDtYFD0t1SjgzHfE_C-kL0mGIzsA93l35v5XY9X3qlAdt7d8elBHWORQBOAoWPYLEhkUdQBkVFNPKs6CsmYjI6Zrt1AGXJdsejF15ogR-gdAhcMcE3gyfE7MFuwth8NPfLBvNRgyDwwYdGoEbYXtC65HQWgwDobVmpo2sRUJr1rYOWxbw4xZ2ZkZo9q0ftBIq6MvdhvIDNfZogl9L_0ZofkYQ1jTK9Sh_alwz85-7nnF7nm9gLTBY-ERnYezQQEAfphEwqtBBayW3OmysayH6afvX93dC6_ffmGkJrX__48-lARJZZbLMSpZgtc1puttm-VuZdFWacynyotg1W57LkufsrSwbFCgzjkiLRFU0pa9pnpZpQUtabFKBspCiEbtGML7NyWuKPVN6o_W5n6gkyvuIVVlsaZFoxlH7efBROhX2bCSUTnPQVdOZFx5bT15TrXzw9yhBBT1PzP0y_sjuCDXTHmGwXgV1RohmnahrYq95eiqHa0VFjzKJTlePJdGq0EW-VMKEv3xeBmf_QhEIrWfWntD6qupc0X8CAAD__wX42Es">