<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/144323>144323</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
NRVO not eliding copy on immediatly-invoked lambda
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hcmh
</td>
</tr>
</table>
<pre>
`clang` trunk from Compiler Explorer does not perform NRVO on the following code (triggering `-Wnrvo`):
```c++
const char d = 'a';
const auto b = [] (auto c) {
std::string a{c};
return a;
}(d);
```
Changing the lambda argument from `auto`
```c++
[] (char c) { ...
```
or adding an explicit trailing return type:
```c++
[] (auto c) -> std::string { ...
```
does lead to NRVO.
Expected behavior: No error when compiling with `-Werror -Wnrvo`.
LLVM version: trunk from Compiler Explorer
[Example on Compiler Explorer](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIAKwA7KSuADJ4DJgAcj4ARpjEIAAcpAAOqAqETgwe3r4BwemZjgLhkTEs8YkpdpgO2UIETMQEuT5%2BQbaY9iUMjc0EZdFxCcm2TS1t%2BZ0KE4MRw5WjSQCUtqhexMjsHOYAzBHI3lgA1CZ7bk6zxJis59gmGgCC%2B4fHmGcX1xHA948vzwiBBOLCYEQgKzOgSszxOcJOaAYswRCGaJ3QnwAIicwBwmLjzjCnvCTgB6UmI5FMLxEE6xLFnfxWfzYiDIVHEBGQkzQkl8/kC8knADqJAA1gp/iTyZTgdTafTztiTEyVaz5aguScALT3E6zdAgEDfIxQiyC0ki8WS2Hw2UnDV0hkq5nqmma5Dc3kCn0%2BoUAFWIeGAwASCh1woYxAAbqgpQKDUaTcAHTyLKZApjCfH%2BTcCJsGKm9kSSTzMRB0Cts7a4YmUBtgec3E2nU2WwT/G4GATizmTnmCycNNWXpn/v8OGtaJx/Lw/BwtKRUJxm5ZrPqNlsPvseKQCJpJ2sxQENAA6DRcMx7fxcQKBJIANn8D64e30nEkvBYEg0GlI88XZcOF4BQQD/fcF0nUg4FgGAoDgiAkDQFhUjoBJyEoZDUPoRIjkMYAAH0CGILwGDFPg6AIMNKFiA9SFiCJmgAT04XcGOYYgmIAeVibQ6gg3dkLYQQuIYWgWMg0gsFiLxgDcMRaFA7heCwUEjHEST8Buepo0wJTF0wVQ6hpHZFyBbo6NoPBYmIZiPCwOjiLwb9lNIXTiFiDJMExTA1OAKyjAPNYqAMYAFAANTwTAAHcuNSRhWN4fhBBEMR2CkGRBEUFR1Ek3QzH0fCUGsax9Gs0DIDWVBUl6JTtS4swIwSYgSDhbVIxjVBeFQdygywCqIS6HpshcBh3E8do9DCBYKiqPQiiyAQpj8Lg0gyRaGCGWbRlW2p6gEfpJgm/Jdu6fiGjmLaRkSXa5mWvRZgGK6lhutYFE3bYJCnGc5zooCTlUR9tQfSQEQMU0IGI0ixUhCBcEIVqdxWXgIK0FY1gQW4sESQbj38P9pw4T9SG/IJT38JIbz2ABOPYuCSBn/EkSQH3/P7OBAsC9yC6CEKQBtUhpDC2VQFC0OIKJWB2J4ACUAFkQZOABxNw3BOLh/FPLhz14TB8CIPq9GS4RRHEDLjeytQ6Py0hots1JEu%2BjhZzZySgK4mlBeBVAqABoHFbwiGobI2GPDFnCzivMxke5yD0dITGmGxygneJ79JDMU9JCkR8NAfJIuELyR/CZ13AI52wudRw9SDxyRTz2PYNECDRHxfbPAj2MxWcJvZfrdivq7WGD4PgRD63D9CKBFyfEjC5hUgUBBUAICjaCo4hQIgWjJPY5jEvoxjOJ4viHAPoTGAIUTxLo6TZPk2hFIP1T8I0xctPO3T9N1ozkBMujzKE0XFZGydkMCmRRkGFyu53KeSUD5PyAVQBxz4KFCKUVYrxXnLuY2qUzbSAtkoK2eU9Dg2MCVSwZVYgDSqjVbIdUGpNWIC1Tk7Uoyxm6r1PA/V4BvTOvtPwEBXD3VWtNco115rrV6CItaxRsjPTmqdYaB07rHRWkNc6KinozQkbdAYMjHotAUTtN6H10pOxdgBbqnA/YPmBqDYAyBkAnEhiREOLj4YG0jnTGOQ8MZY1GLjEAxdTwPgfNTMw1NXx7EpkkbugRpCEzTiAF8WcNDXlbneLgETqZJDfFYpcFdQLgR5iPceAshbTywuLSWbBOCAzsYrRxziNZa11vrEg3CjayDwelAhshLa5UXLoVadsmAO2UhY/u5cOAewIF7E4PtbH2JOM0lxwcYYuLDthBI3iuC%2BKCv4pOgTU5fhADE8m1MQZRLMGYJIzcLzBAKUBTmJS45HmCZrMJOTomxPiYkzgfcy7WOArHNGHzJDU1PLkwIIM4lmFfJIGJKRCZmDOVwX8wLCmgr8e%2BDgaKsUvLBTXdymRnCSCAA%3D%3D%3D)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8V8eu4k7WfxrfjdUt4wQs7qKqHHDCGTA7J8rZxgGHp_8Efefr0fxHUyqBdOLvBKhzwmHIcZOm3wQHCU74Cqcxa_vvLK6zr6hN1m-Cp-IqbDDBU-TYT01JPvq2JlFbd3mV9qS4dFXbpz2ZtOlANu1Idmn_aPuaPDsXk2wbcsxS8tFWVTvnDSbjNklJgj6MfY5x2r9JBE_9ujb9qyV4iqCPBAMI6nN56s-NCRq-LwXIuG2GkYyzsCcTkmAEkqD3IUHvCebDJskfiXAaWzL6I_GJ7O3zQ4wJ-kgS-3-Jv88wJm-nDBjGD6CQ2MOY2At_jb5Pn45T35DhX-pbhD4kH8zw3wH_wY-ysMFve-8MVGEdJSEZ9niq02b8k0WCp96YfjT-Ge5f6J-I_wWd_P3793-4a3syTJIP-IZMl67K43wkxz7MqzfxB_u4dulPev-Xs795-kUw4j_S898RfOpfpWFCju2n9r9_qkgBcenSeEwTMkqz8JW3PcEA8tySad-3PTlnaUPGn356W5_zMfvTEn_Y_98ab3u6fjHIV9oPedu8jfyvjvxxz0FxCeuuSt-9-E8h7l3CbBy74R0jLRG0hNskaqvxd9vjD4HZCAaYgY4zIMFnwtloAcFsBdBANXQSqANpZ6MYhJaIgLHNcDTAHtizNBo2XIGDj9poByJYhzyi7BtAywFCoLWw8QDwwambgfECUuC5o4p3ggI6gAJgT8FUVsc78GZBKxIgS_4INHaQFaDNYK-5ExBUVlAxiAsWOF0hKgDEHQDmEzxFD88p07NwTut7gfWs9MThEJRd0mGT9hXRM2xx8jiC5mhoR2FwzH2jiCnxnkgLimvac3fjh3mnNJE1nJm7Fq6N_PGZpYtRDCczABs8KUyFwQ7d91HJb4uaD9wR1zJG6KPLPk61HN92ywkc2cNrm3MITR0Foo21zcTusC1mrJohCIbZQXKoMnYzAyWPZzjXerEVqHkhD0PerxVOMvRFFPlFl5rHcn1sQS4ol5MIZbvc7LI6ELRUokPZAOGpArDDHUFLubfePZx44cPbxtwT10u4cSGe3BjoHiPyWwKwKDyUxc5XRJX54erSp5n2G-FCZeWTa551HXJCzJSooT4htT6Qrkoqgxm4KNvNbbAAED1xZ2uCH3oxOHmrrt1BV6DH6aPhxUgdZK0-lq7rbYYDKTQO-5ANah-OOI0ZkW58-jp7BC3JrAy8fKu9pkZrfD5fb11D0NLrYMpjqC4ELekzQUtwHjXHV5eau_fW81wN1mtINRupnUoPiy2eAeAFJzaW_WOJbQ2qCjg3B4FnU4ZqxPIFAxFTcqUcDrd7bEostG2BoKVHLFGNj1kJy6AVcA5KwZYyv2ihuortXfCt1lGK0ggAOFFIVvRZFiQL80AxzpqUg6Mr5UitMfAo9hbLZhDgWgHpJY9sHmMmKfXAticluOKrgSk8SLm-YCE2nFAC-yxFsy8WJ9H1DnBKu5aaVU-i5ovNZ93pLq0wavlza8GgVu65hWazyPU5OlZn5eblUi6ohrh4YGcCbS2AdQ6ewAiABMDZmz0ATvF0dp3semYfGYSi4dColB0o-pKzE0vG3k7UA_nyEC5HeaAERbheoF_xqje67DArsxtgV8iii7IUF5hKdrLidUZPxeVP3ZDFMGPEQ9IeBQQDLX9adp6vwO6Kg44pvDqhjORr5FRXuuOx-OhUXBO0pCYT_8jlotZDp3RvIVdfX84dyxpfZdMYSCITBSpq5Jjb2hZ5le8cR_vh2qJt-JQiK1S--BmCsahcnslyvWFFo6Rgh-0rO4iuHRXMwTp2M-sdXZmgJUX1mIOqRBsNoGkFE3Lhu7nE0rVPDEFL1t6EYEDHFfFI1Gw4-lknIPpiS4gyFU29QlplAfKBVNp3E8DlPDPQ1DOCliRLz7Yd68EDUqznUXZZxzmJgl6k62jz1kpl7TjsVHH6_CKK7L7dVxdrbF3BFF7AE8D2JEVzLreRQsuWIDVoy1_GUqbcKlCJ4sm1vKy4SdX9URUM_6ii0jmcwUNVJlFfHYKW0H3HAIWj5ylx5qMrLKvjbbQVnEUkOKflEVmgoI3lGquv-6NP8tdzf5UF1sKOwDPCEWlQWh9igbjMxz6EPlBQEaKWzWwFXwvVCrhCfLVLYarsKz8Bq_VkoPjeore8d7dKOpMUa-cdFGqJR8tkvON5124lNKZi00TqJt3lNSkNVDtOKUvrxDFa6voCZ63gYsNlYzUJaf4l6Jdbo08B_fS3yAVj2Wp06h8FTBvo4s73S4AF91lcIiXx5e58VdDOK_d-uy413--s9wN2YeHLM1-jNYvwJjCX63iO292O6_sLj5QxXJyhsLz6mQQhpPb9ybmW55jX8qbd7DJKQGAUp3YEvjee-dOO6swlwTB6Nm_bgVXDpxCAFZagEbPcEU29YAOZKhpPNu2DcQ92sl6IYEm82cKPs2fMu_Nt2YtdWUYTdjokbl4OpMM1Pgu3KmpSHYve864KDynoYimxdexwuRWnYMgib50n3b1G0ERgG4LeWbb8fA93u1cvYgYV4SrMaQWyIdNDzr_p7SVMhhqYtJ8FBC1NXGyCdFakvchaY3SiVdOgqmWOg2DShTGDCpNPf14qDb3YzsSezz0yIIiHemfYd0c35EBVtljfINB86NWqy3KnGt17QzW9tl6sPCg3_IjX_dUE_eksnzZV8HeWXs6KYrBVLT1URVY1B91rwbzMt8Osoxr3h_TjVcChNvgvHXq3ZK2dBrkIAILmGOHfP45fyTeTHJlj-JV-7_YcRfF7nue-su8wplOG4fZxFEVHLkr5Q0jz7INLmAfD0zH1lX_TFM1R_I6njhxLc78PYXig4wMT7g7H6MEdCJZK6zCvflfVq34PPF_5MEzp945lGZr5qsIorYbPbkDTTTqTHy5B0-9Vof9-K_2KJjwQLFXlwzj8NTPmY5V-f1aA906QVnnyZ_rv1vccltd1muThWK2_8ubVlmnyMyB_TX31_R_jWD5mU_Q7bt__mW8HP1-_ur4t0nh8v_NvWANBSz-4X9_0_wUAAP__zwEVdw">