<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/125439>125439</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang ICE when decltype'ing a capture inside a lambda using deducing this
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
foonathan
</td>
</tr>
</table>
<pre>
Source:
```cpp
void foo()
{
int x;
[x](this auto const&) { decltype(x) y; }();
}
```
Compile:
```
$ clang++ -std=c++23 test.cpp
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-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++23 <source>
1. <eof> parser at end of file
2. Per-file LLVM IR generation
3. <source>:4:5: Generating code for declaration 'foo()::(anonymous class)::operator()'
#0 0x0000000003b10418 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b10418)
#1 0x0000000003b0e55c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b0e55c)
#2 0x0000000003a5d898 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x0000703df5242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000000006ef39dc clang::ASTContext::getTypeInfoImpl(clang::Type const*) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x6ef39dc)
#5 0x0000000006ede4eb clang::ASTContext::getTypeInfo(clang::Type const*) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x6ede4eb)
#6 0x0000000006ef393f clang::ASTContext::getAlignOfGlobalVar(clang::QualType, clang::VarDecl const*) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x6ef393f)
#7 0x00000000353ecd50
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
```
https://godbolt.org/z/x6Pfh7Yqn
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8lt9v2zYQx_8a-uUgQyYlS37wg-zEXYAOzZqgwJ4KijzJXClSI6nE3l8_UFISuyu2oegWKDB_Hj_35fFI7r1qDeKW5DuS3yz4EI7WbRtrDQ9Hbha1leftgx2cQMIqko7fOp0-0fckrZ6sktBYS2hJ6Cb2FzuSVgAAygQ4EfZSJfnuRPIbQstwVB74ECwIa3wgdE3oBkixA4lCh3OPhJan2HYmbAekuJmtj7Zi9QJjotrbrlf6G5SxTDMQmpuW0B2hO0h8kITdiKlKGQT0YTm5c__-tnq4BT_UnQrAoR5acNhbFyBYOIbQ-7gGPRB6aFU4DvVS2I7Qg9ZPLz9J7-xvKAKhB-X9gJ7QA3AjQRmhB4kQjgjCcX-EmosvwXGBhO6hd9g7K9B7lOAn1el-nMm9t0LxgBLcYMALp_qwJGn1ELj4AnLo-sn1dEnSzb2zreMdcNcOHZoQkYHQg-0jk5ikcgmeem0dutgW5UmCG8wXQg-1Mi9tL5K18pm7JskgaSGx0Rjv-2hyCP0Qlh6SLroOSXIq1wn3XeLPJvATYTfKBNSQNMYmT-hq6zH2Q_IASdIKkQRrtThyZQi7-VvIONgb3vujDZA0wmrrEql4a6wPSvhpjVHY6-av95uw_SwvuyVptYqaEbZH2xB2Cz13Hh3wAGgk2AaaGFhpRUdp0SWxDu_ff_oZ7j5CiwYdD8oaklZstvRmnVUZYVUeN-DdPNK0IKxEaKwb451P04HQ4u0csWoMs5Iba86dHXyMYO9fu2wfbVk3D6fFGOcshfSUvvyxepVmqxLG0Bxn-bOfCvdOmTDGzuMUfeXbIMefP1sfHPJuPJn7eJDHAxrX-v4gInSXnmamOVVQtroGTjHPxbeA9xq5GfoP5kG1hmtCy8GMyUuCtnGFH4U3Erzi0Ss8nstyU8I-RthHFPYJ3Xni-YkbqeMq5azV1Zi9NQFPU4phVTr-j-bZbL5ImWxymtGcprMfWtWEHk7l-vM6S7QywylpzTB1iKW3y_UIPE55xc0ucdfYsI0Uc-obVaweHmeWqd5ieDz3eGcae9f1UdWLwbHnJUFX0aex_ENkntFeufNrbokZ1v-S-39kHrFemdd_0Zo1_8BcadWaD807bWuuP3F3zf7LwPXjePftL-184u4Ghf4vd4I1r14VF16xnKGQeQokrS7nsQrQOetiYWyHxkVPjQRhuy7eVw1XGiU8q3AEPKkwZbwVG0_p4BGSp3ifekRQ5smKKYFOENcX-1dXrpW11WFpXUvo4Y94Qtb3zbH49XezkFsmN2zDF7hdFazMWV7mxeK4zSgWYsVKKjZ0VchVyjPMEUuxKZqMl9lCbWlK85SmlFJWsGK52qzLMpc1FbmQMs1IlmLHlV7GxBTXXoz3-nZF84xtFprXqP34iKJ0ForG95Tbjs-Bemg9yVKtfPBvJoIKGreTfnf7W3g-orl4_xTxnuAgeB8GF1XySiJw0LyrJYfBx36JchCxEF9Ui8Hp7fe_UGZnnrb0zwAAAP__ab8bHA">