<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">