<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/85531>85531</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Invalid code generation when using deducing this with complicated base classes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Arik-Playground
</td>
</tr>
</table>
<pre>
### Environment
Clang: Ubuntu clang version 18.1.2 (++20240316123438+a649e0a6e80f-1~exp1~20240316003543.91)
### The Problem
Clang++ compiler generates incorrect machine code when using C++23 "deducing this" feature with complicated classes for `this`
### Bug reproduction
1. compile the following code with the `--std=c++23` flag
```c++
struct injector
{
int y = 5;
};
template <typename T>
struct wrap : injector, T
{
using T::operator();
};
struct manifest_bug
{
const int& tester;
int func() const
{
return wrap{ {},
[z = this]
(this auto&& inner_recurse) -> bool
{
if (2 == z->tester) return 0;
else return 1;
} } ();
}
};
int main()
{
int a = 2;
return manifest_bug{ a }.func();
}
```
2. run the program.
**Expected result**: the program ends with 0 as the error code
**Actual result**: the program ends with SIGSEGV
### Godbolt link
[here](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIMwDMpK4AMngMmAByPgBGmMQgAOykAA6oCoRODB7evv5BaRmOAmER0SxxCcl2mA5ZQgRMxAQ5Pn5cAKy2mPbFDA1NBKVRsfFJto3NrXmdE4PD5ZVJAJS2qF7EyOwcCgTEXg4A1OHatUTEJhoAgiaJVteHj8eChwCehyYBACKHHZ/3N0SX3%2Blxu1wImBYKQMEI%2BATcBFeKUYrEwhwAKp9sKDdvsjgB3YhMFKHEDPU4OEikDGg24Ap6HLwZIwYkAgVDIonnCDLEHXW7AgIAnF7A4EQ4sQx4KiYXYAfRiXmAtLuoIZaAYu2eBHMADZDhDdvE%2BWCrgzwuKqF4GMgeYcNbs1U86U6GY9iJgCBsGIdCcS6R9VUDSK63SYOhYCAg8Apw8CHm7HhAozHDkwvEQ9XrnhFiHKPcgNkplocALRYw4xVCeUMMl0JxPmqiHCBmOGCn4phTlgLYQ0Q4glj1e4g%2BjQmxtunpKQ7D72HLgTxsCwM/HlLx4ClWC4XXC0Spjhdf81UN7Vp9uHMwb2ee%2BeShjS2UEBVKgNMVcAOitNvXQu3HCrLQnAdLwfgcFopCoJwbjWNYhwKOsmxouYAQ8KQBCaIBqwANYgB0GifmYnQaB0ASJLqASSJIGgABy6tIwEcJIYFYVBnC8AoIAaBhWGrHAsAwIgKCoFCdDxOQlBoGJ9AJMgBhGHKooMDhfB0AOXEQDEbExOETSvJw6G6cwxCvAA8jEFKYdwvDSWwghmQwtAGRBvBYIqwBuGItBcTZpBYA%2BwDiK5/l4AWjgAG6ymxmCqLUGbbOhFo9GxtB4DERKmR4WBsXseAsIZgF8AYwAKAAangmD4mZyLgeh/CCCIYjsFIMiCIoKjqCFuhmPohjGHBlj6OlXGQKsHJ9L5palrs6CfF8piWNYgRlmZAS8KgUXEMQeBYKNPLdL0WQuAw7ieG0eihOEIwVGMXCpOkmQCNM7QPUUWQLKMCT3TUdQCAMUznTMh1nPUkxDNdix3XMgO5K9uzzJDX0SKsiEbFsKP6CBrEhdBHCHKo9Glgx9oKcALbKThJYQLghAkB8gRcMsvDWVoyy4fhPFMSxpAFQRpDgZBeOcXorNFQJwnrAQKQZpJEDSSk4nEJEqKcITurE5IpP9RT%2BwqczwT4Ocu16A1wiiOIrVmx1ahsT1pB%2BikhVAdjAtsXjZkZjL4qoM26ua9rLLJnrVMth4MnxAzARmAbYv8UgsXxecctNKVyiGD0QgIKg%2BJ1bZomKzCWTpxEtBZzngv5xHclk0pIekArSsq2wHENwXSue8I2e5zFcXIFcxCla3ifIA0%2BDgbwZtNZb0jW0otvdXoZMoINNhpTE%2B3jSkk2cNNs3zYtViWCtpZrRtW07Xt8CrHrjhsOi1Y%2Bdfazoy1EzjyXmfd3nGEeuwPGO2dljDgoE3a404NgPuGZ6b%2BxJvJHWwdrShwgLBJaQ1Di03OFHJmLM%2BKrAQJgJgWAEgHW5rwPmPFK7sQ4CLXqccOaSAAJyfkSLRJhkhdSBF1B0DojDWpMXWmAoWrd6HALMDjYRNDeKuXZqQLaGRnCSCAA%3D%3D)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMV1uTorzT_zTMDbVTnES9mIuEM4iKeMKbfyHEgAJhQhD04vnsb6HO7s4--1S9Uwwzdv-6-9fpdEzHTZPjCqEPbgS5kf4Wtywj9APQ_PJjWcQ3TElbpW9Hkt4-OEl-PrxRXXNKqhJVjBN0TgBaEVeYkwG_ObYVa_lk-MxfEW1yUvHi5F18l3hOmnAS5CQoCZIiyKIqSrIiD7JYVaZIiFU0EU4_xH9QX4v_fIEEQR4p8vtU5KTpM9jr_ZPNOkP8kpJjgcrf2TxC8Qkp67xAlMeoQjRmqOHzKiGUooTxZZxkeYX4hKSI7zJU8W2TV5jXXjxlnpOkFKVtMkhZljecJPEnFLOWIr7LWfbwX-RJzFA6ZN00qOFPhPKcKjzwqvB30rDFPEU1JWmbsJxUT734_kWYZxniT6QoSDfEfjIcAg5yThV-_GhYysl68kWVUwX-VMT4FUgVns9L_5Q2jLYJ4_PqjBJG6As6fml5nufzivE3npN1fsTJ8Aug__r_8WaorIuYIZ6TNXarURWXiF9zsvEtTEfjmh82xc94ksav_wz6XPE1JwNOBqQeajQgJ0O5_5vBK0QZV_kJNex_xxb_JZuEVM2QLuMklWeoYYj-4ecr51NbJc-gT6Nf2m8Ohx-KWEurR3bcGD70Y52TtBeKG8H7YwEf5R_p3405aTLI-bhlhJPUgVdeVYj-j6KkpQ0aCPzgZIM_ElJ8efyTwYP0afAlDZGGYPfB6JWhNP3iKPzM9ndTVDToCyH-C8GN9efv9xK8VP9Vj2ENyzivXlZ_31jxY12kbz5fPL4VcgwH6Fh__1WVb1vh-w7_nYb0ztO2evRITQmmcfn-vf2Gx-hrlAz9SlHTFuwpHPbpb2Y8qtLm2XACHzcPFaKU0Ecn_u4NJKyNi_-nr9CxQsPa_v1IsEh6JAXji7y6vHQjmCGKhl0kTTLG6mZoE8nkJBM_we-E4odAvnMyWEQznAETfqajQOtB1C0j6GslXKVwBkwx0BIQLw0N-PcOMh-MQdCZzA_gDazw1GNBZIBbkx-FYA-0fgIh8Ais1gBsgF13wL8CM1qHzMWi7oAaaBEI2qi9FNMDWHe6d06BZW4Y8JTGcvxO92tPAX6F_RLA2xJDq_QDDBa3CwAq0chqocMxul5HMF6VC1AaKyHsey0ppBKMDgFe-T0IRstqlADvJpXLo6kDcQ697ao5mS4j8pzuy9RQlvrosHWBG0qf5ti4LbpEw2tjjxUgLuyYbdaGmxGA89jdMmSfJ0jLOg1ltwgCzbPtAyeZ8lwI9zInjSRY9K3YOSWMvMA3nIcIrBNoIm8TUaPLOuDV08bT02tzxlCOMt_0bENfbpSFkV90C0sKqFV71h2cLroAvNUdUlWaPjPs_W4MsAMqcwwUI1CaoFe8PNpH4LTK9yVgs5Y4hxhErYSg7QP9oGd6ejUeHHYaxfeu9T5NxfIxipL5sRE3E3WjWtE0d7EGG8tJtSRUV9PtRg89VQ6jRRZpAE9A3U00uxzbGSB3W790VyOY7mmVmbntLRM8v9QFScBsFXVKv9XQxvcLwe2X5Wdua7BcWFql1Nm6wLMoEAIFF2cRKfhB6xyUPWur2gvG-liyZ3jdN1rnc5JpF7Ne0Yqdpuz3mhDW5yw9TcTNfLytp63td0cJoYcLFGbnUNoYcOvhub9NwCJn8-s-aGVbo7OgAumsO-HEJLVG3O543s2jrPMWTdmTNgLBxAugFjvwswPzCEPByk9lVAUxFEDozj5BGLqOhQG8qczpjMR1IjPawkqbAOKAGGY7i9qgAZ2DPY2YWqr3i6CAxHKnwPUxzCzbI8TXsxMUwGJvBLpxNPqFsQ6vbqdaatL12hWAydkwvSjtrnq463BWBh0D1gpeYeR8drC1HAaT9aGGEXjk3Om5N-Iks1DA7oyBpd7KvtQ-ZxvreFxkJplaPYOKbqy8cqXsYLNvEGicAzYnIOqAB0Bc4VJXysNthlHGSaamaU50bkzHzzWHeOdPzWyzckmys2XD4qwuir0VeI3tTmejOi5oo2onc1Lnu3mEV0V5AOHEw5u94QcIRt58OUtnwi5oQTfOkSWgPFsYTre1_L1WLy5loM39cbDcbHbBzPO1tbzepIEG_M29WvuZWC03l16fp3kv7328GHnT9n539b0Qek1uHM3GW6oapEaWQluzPTK1CtxPiZeA2dFbZ24UDKfYBU7wKvGbq77bkttNOWVL0w_7GpjBqtbxAaJFsid0bgZuV1EQeMGhdg09DC9KZbjGp5c465YaI6deTlfr57J_JvdurSySVlSB2OX5wqHbshfjrFmLNXxg8ku2BekZsGZ_PlwO55nySXxJbeMpnc3cim59lil-1YM7WJXgGF0nG9zse5QkbO5tb7mlCwF2vGd7uOLxQErvru3WdW8weLhX-Drq7aS4CLWDLoCGzafU2ca824ctmjgSGt3NZO-YSa8VsZyfHCA8POn42B3Y_HAUzjuBsGu6JwefOPN5Vq-fJ4R8Di8XKZnPG_kesW2-01h9oCu2E8Z7NtGoTc9Zs8jF6IFOT_Gd3ETjfr7ty1MqV5aB2m5pLaS0OOuYGHKsCMocL1vroB4fJr17de1dl9Iw6_AMunEg6rkgL0zbLWf-A-JRELjYxTtgYHs3ot2yXJreuAkUbbb_TJJFHALg3k6XcLZys0uWhtAUoaCTs76r_f2uBGRHU9UGM18_R6u5jrx2f_gMZrG1qrRQA0P7yPrr9bpmvKUfcjqVp_Eb-hDHoqAKgjRS37IPcSyNJVFIVISOoxFSFEWYnNKxrCBppExj5S3_-DmJKIoiqu_CeHqcJNJYRYKkJMKYUwRUxnnxXhTXcviqfcubpkUfk9FIFt-K-IiK5jE5SVKFOv6h5CRpGKTox2Dz49jihlOEIm9Y88sLy1mBPpzqGhd5-rzbv8aTYVz6bRD5Nnv8e-A4xg36mjreWlp8_HFHyFnWHt8TUg5nTXH9-vOjpmS4kXOS-aDccJL5SOn_AgAA___H3lDI">