<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/82203>82203</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] [Interp] assertion failure on lambda capture of lambda (-fexperimental-new-constant-interpreter)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sethp
</td>
</tr>
</table>
<pre>
Given:
```c++
void wrapper() {
constexpr auto f = []() constexpr {
return 0;
};
constexpr auto g = [f]() constexpr {
return f();
};
static_assert(g() == f());
}
```
With `-fexperimental-new-constant-interpreter` clang crashes evaluating the declaration of `g`:
```
clang++: /root/llvm-project/clang/include/clang/AST/APValue.h:553: clang::APValue& clang::APValue::getStructField(unsigned int): Assertion `i < getStructNumFields() && "field index OOB"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -fexperimental-new-constant-interpreter <source>
...
```
(see: https://godbolt.org/z/nz8v5sffc )
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVUFv4zYT_TX0ZUBBpmxLOvjgrOMPH1B0A6RojwVFjSQ2FCmQw8S7v74gbSfpdncRFBAEcDTzhnzvDSVD0KNF3LPtHdseVzLS5Pw-IE3LqnP9l_3_9DNaVh1YeWTl7b0rL49i4i49OfrsdA8vXi4LeiYaJlpg9fUbgHI2EJ4XDzKSgwFYdYRL12vyW8a7MgCPFL2FklW3IKuPr4sfwI83-OGj-MMl6_tdAAJJ0upPGQJ6YqIZbyesjqnTrfodQKr_J1vvd_yHpgnYruQDnhf0ekZL0nCLLzzvU1ri2hL6xSOhZ7sSlJF2BOVlmDAAPksTJWk7Ak0IPSojvSTtLLghIY-p4w90uywz4FXB6gBMnLxzxMTJmOeZL979hSotr3knbZWJPb6LHB5_S--H36WJWEysOmy3VcK6JFQHVh2uX5nYfS-aFyPSI_mo6KTR9Ew00WZb9qAtZU4PcMjMp-OxXamBVZ_gtezXOOfKcBNF7FI7JsSQwqBtj2f4_PmOCcFEDYPUBvviwsLDL_eHx3sIsZs1gYQujuBxcZ6AHExES0i7FCcmTqOmKXaFcvOVpX-TpUOIGJg4gbSpc6YsS5SVg06qJ_JSIROfYPG4eKcwBOwhuOgv4VQpQ3BKS8IefLQQlNcLXbf8SFI9QR_n5VXgsmBl--Dd6OUM0o8xGSpcZXVLltHNizboOZ4X43wa0ouQXN64DZx8tE9MnDpt33RODgE-9i_SD3wDfATuEq5cloQeaYlUBOBz4gI4Pzc7LsPMwxdL8syqY3KyAf4InI9KcXLOqElqm6bnZ9tLycHKJUyOgA_KGed5r-VoXSCtAvDBOp6J_Sb8oalKLrqyXt1feCyK4idTy0QTMJn2W1-4vnOGCufTVHxl4mS_Ns_bMAwKmGhX_b7q26qVK9yv67Kp1tW6Xq-m_XYj62ZXD1vcNcPQSjWIod7Um22zabdD3a_0XpRiU4p1W1Zit14XWEpRlZumbbFbd3XNNiXOUpsiUZ_6r7IB940QZbUyskMT8uUuxFVMke55v8-27eIY2KY0OlB4QyBNJv8RLhXbfJH-P9OWFq9uyXMUPYKzYOTc9RKUXChHhluEieajd5xoV9Gb_X8fuXzovwMAAP__wSoebg">