Issue |
144323
|
Summary |
NRVO not eliding copy on immediatly-invoked lambda
|
Labels |
new issue
|
Assignees |
|
Reporter |
hcmh
|
`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)
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs