<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/146377>146377</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Wrong warning generated (gcc works OK)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
socketpair
</td>
</tr>
</table>
<pre>
The following code is pretty correct, but Clang emits warning. I consider it a bug.
```cpp
struct X {
int x_field{};
};
struct Y {
template <class>
Y() : y_field(x.x_field) {}
X x;
int y_field;
};
```
https://godbolt.org/z/Y4Y7nMnTM
x86-64 clang (trunk) -O3 -std=c++20 -Wall -Wextra :
```
<source>:7:19: warning: field 'x' is uninitialized when used here [-Wuninitialized]
7 | Y() : y_field(x.x_field) {}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUU01v6zgM_DX0hXBgS7FlH3zIxwZYLIpeCqQ5LWSZcbRVpECSm7S_fqF8vPb19gABFkwOOTMUZQh6tEQdVEuo1pmc4sH5Ljj1RvEktc96N3x0LwfCvTPGnbUdUbmBUAc8eYrxA5XznlQEtsJ-irgy0o5IRx0DnqW32o4z_BuVs0EP5FFHlNhP4wyKRTp1cTvqdIJiEaKfVMRXBLGEYoGIqG3Ey797TWZIP8UaeAp9XX6hdt9QkY4nIyMh8JUyMgTgf91DO2ANsBaBL_DjXpg1l9mjSQrdGl2LJ8grXm7NHoQeuB9UHmJuyEOMpwB8AWwDbDO6oXcmzpwfgW0-gW12852wT_bl6ZZ-aeq8nqO6GgisiX6yb4lN_swxD3EAvlbAlsCWrEDMt9IYzLd0iV4mMT8J8FVwk1eUlPOFAL4o26T5PpV0vYpAYOICTKSZTlZbHbU0-pMGPB_I4hRowAN5QqiW-fa3DKjWd1MEgljhH9v7jW82dHxoeSsz6kpRlaxtRFtmh67kUpFoy5oXomnKPZOyFkO_73ld1cRlpjtWsKqoeVFWFS_LWSNLpWouymquCl71MC_oKLWZGfN-TAPIdAgTdeW85kJkRvZkwnUHGLN0xmsUGEsr4bsEyvtpDDAvjA4xfJWJOhrqtt7Z8WErjmTJy0jJ12ZUCs_OvwV8_gdYm03edD-ehY6HqZ8pdwS2SYXvn_zk3X_Xvdpc6QRgmzvf9479HwAA__-ywhki">