<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58601>58601</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Print name of uninitialized subobject (instead of type)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
good first issue,
clang:diagnostics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tbaederr
</td>
</tr>
</table>
<pre>
There is currently a weird diagnostic in clang when a constructor doesn't fully initialize an object:
```c++
class Foo {
public:
int a;
constexpr Foo(){}
};
constexpr Foo F;
```
https://godbolt.org/z/5WdT8d4GE
The diagnostics for this example are a little weird. First we note that the subobject is of type 'int' for some reason and then we actually note where the subobject was declared.
I think mentioning the subobject name instead of the type in the original diagnostic would make much more sense.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxdU01znDAM_TVw0ZQBA8vugUPTdDu99ZCZnv0hwI2xd2zTTfLrKzvZLi1jjGVZ0uM9WTj1Oj4t6BF0ALl5jzaaV-BwRe0VKM1n60LUErQFabid4bqgpQPS2RD9JqPzoBwGW7AhwrQZCtdWR82NfkPgFpz4hTIW7eeifizq23yo34cs2EMaeZcqhABn56AYPrYumzBa_o0GerSNwIv24b6TweDLxafYgh0LdkoJhsePYrS4Hf8otA-A8917g_VuLjFeQqrNzjRmp4QzsXJ-JuuN3v6nejqq7tvXfW7ic0dcgIkYigvxiy98vRjihOjmYHSMZGSiKzhrHyIZYF1EOs4jTQhhE-_0JX3cBPH1gkBMEwU059TBrQgeeXAki1UpzKZEXMaNJzVyxmsW-d-UVx5AIXHuUVX7P_ie8NpnWKkbtLOaVP830nKqqROFXGVY5M3QqEvS2nk9a8vNvoGubjMKVv6MsG5ygdURoIA2YFXi2BwOh6Gp27Yp1diqU3viZdRE0PjDJ71zRaq02XtzqR0iEn2Ph7BQD5SbN-N_Guq4bKKSbiXDmN-3z6eLd7lN2VmHsGFI6h4PdVMuo-x530tkQzd1QvRNx6f6JJVQJ9YduomXhgs0YSx66mQ2O6dgynLmTLRVsC8EkOX7Q0h2zZGc_WOpR1Yz1tSsb_q6b5tqaPp-QoG1UAM_IhZdjSvXpkpYUwOWfsywxTYHchodYrg76Rbp2SJmSJSfb3FxfoyCo0LvywxszP_3B7TzTP4">