<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/129365>129365</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[C23] Compound literal with `constexpr` (or any other) storage specifier emits syntax error
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
euclidianAce
</td>
</tr>
</table>
<pre>
I couldn't find a specific issue on this, but it is part of C23. See `6.5.3.6p7` and `6.6.3p6`
Simple repro
```c
int main() {
int x = (constexpr int){1};
}
```
```
$ clang repro.c -std=c23 -Wall -Wextra -pedantic
repro.c:2:11: error: expected expression
2 | int x = (constexpr int){1};
| ^
1 error generated.
```
```
$ clang --version
clang version 19.1.7
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /nix/store/azdqrk7n19ipjh2yav5kllzll7a49phn-clang-19.1.7/bin
```
Looking through `clang/test/Sema/constexpr.c` this case wasn't covered
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMU8GOozgQ_ZrKpQQyRQLhwIHuLNJIe-uV5rgydgU87disbbrT8_UrID27Gs1hLCTs4tm8V35PxmhGx9zC6QlOl4Nc0uRDy4uyRhvpOsWHweuP9gsqv1jtgOqEV-M0SowzK3M1Ck2MC6N3mCYTgZ5xWBKahCbiLENCf8VnKnN8YUaoRJWf8jKv5hoqgdLpvVbl5VxBJUB0ILoXc5stY-A5-L2yftoeBaIzLuFNGgd0BmoQ6qcN1Kz1O0J5QaCz8i4mvs8BjUtADdRPBdQXKDdwffnp3F8s6YjKSjfuPHKFWUwayouiErOv0lrMvvI9BYnZzFq6ZFZyDzCUHUHZFQWUHXIIPmyT-8wqsV4ngWM03oHokBDqZ_wcvy9jx_9_748Bpz9AdMX-axzZcZCJdf67mrPsjcOD3155rLFo8iKvQXR_yTByWmXdz9Xf1TFb3Kvz7y6zxi33bHTLCpoCS403r9mu0NlHcwfRfXExSWtZX8zWGaDemTtQH5MPDNTL7_qf8Fq7ojHzt4k-5Nvp1drv1tby2MyTyzZW2YMN9YNxv9Amuj-9fzVuxDQFv4zTardtJ1CfOCag_oVvEqj_0elcrdZc3YxKRsZ3GXfnK__GgfVBt6VuykYeuC3qozgXQojmMLVSy2EQp6ooB810varj9Xiloa6FICrPzcG0JOgkSlGIioRocqmq4iyPslDDtT6TgqPgmzQ2t_btlvswHrZ0tQU1ZXU6WDmwjVtciRy_79kDojW9oV03ZcMyRjgKa2KK_x2TTLJbzp-phNMFn_1t9ovTaE3iIC2-m7T35rMLaw-Azj6gdB_o08RhDdt6PXLkz_hzQL6ZFDF-uCTvu90OS7DtlNIcoeyAeqB-NGlahlz5G1C_snq8sjn4b6zWa9i0RKD-IfatpX8DAAD__wEpZXk">