<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/154567>154567</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] constant evaluator thinks that elements of an unnamed struct is not initialized
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
philnik777
</td>
</tr>
</table>
<pre>
```
struct T {
int i;
};
struct S {
struct {
T val;
};
constexpr S() : val() {}
constexpr ~S() {}
constexpr T get() { return val; }
};
constexpr bool func() {
S s;
return s.get().i == 0;
}
static_assert(func());
```
Here Clang says that `val` isn't initialized, even though it pretty clearly is.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxckk9vozwQxj_NcBkVOTbEcOCQNoree3p_ZcMUvHXsyB6izR72s69IaZNWsgQDv2f-PB6TsxsDUQf1M9T7wsw8xdSdJ-eDe9daFzYO1w62Yj1ilznNPeMrgn4GsUN0gdGBWgLQ-_Xlizt-ceuHzxDxFS_Gf_CIj1LEPobM9Puc8AiyAdkiqN0NXyP9vAi-o3-PP__-AF5xJL4zmIjnFNYucJU89HFX2hg9vs2hf6iw5D5i_hxgTZbLrxqlQ1B7UHsUd3tWbwy7_n-TM6UFvmdezgf7YDmI3X-UCF-8CSNmc83Ik2GErVh63wp0OYDUjC44dsa7PzSAfEG6UECe4jxO6BjPiZiv2HsyyV_R5bIYOjW0qjUFdRtd11rUbaWKqVNSbntltbVNY4ahqVvaDJs321SVEkNrCtdJIWvRSLHZirpSpRmUNlbY1iiSJC1Ugk7G-dL7y6mMaSxczjN1m7qqt7rwxpLPt72Tsl8GAymXFUzdIniy85ihEt5lzvcU7NjflvVmBdT7j9s1gZEuxs-GY0KeXHhfLSJPJwqcMb6hCTiHYE40fO6iyxjiN9eKOfluYj5nUDuQB5CH0fE027KPJ5CHpZP18XRO8Rf1DPJwmyyDPKzDXTr5LwAA__9-WwDB">